/*
Theme Name: POLI UP
Theme URI: https://poli-up.jp
Author: POLI UP株式会社
Description: 政治デジタル秘書「POLI UP」公式サイトテーマ（パターンF）。画像・主要文言は 外観>カスタマイズ から編集できます。
Version: 5.4.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: poliup
*/

:root{
  --blue:#1c3faa; --blue2:#142f80; --sky:#3d7ecc; --black:#14171c;
  --ink:#14171c; --sub:#3a4150; --mute:#8b93a1; --line:#e2e5ea;
  --gray:#f4f5f7; --ghost:#e9eef9; --paleblue:#e8eefa;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;font-size:16px;line-height:2}
img{max-width:100%;height:auto}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue2)}
.en{font-family:Manrope,sans-serif}

.pu-wrap{max-width:1140px;margin:0 auto;padding:0 clamp(20px,4vw,32px)}
.pu-wrap-l{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,32px)}
.pu-center{text-align:center}

/* ---------- ghost section heading ---------- */
.pu-sec-head{text-align:center}
.pu-ghost{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(60px,10vw,110px);line-height:1;color:var(--ghost);letter-spacing:.02em}
.pu-sec-head .jp{margin-top:clamp(-46px,-4vw,-32px);position:relative;font-size:clamp(20px,2.2vw,26px);font-weight:900;letter-spacing:.14em;line-height:1.8}
.pu-sec-head .bar{width:34px;height:3px;background:var(--blue);margin:22px auto 0}
.on-blue .pu-ghost{color:rgba(255,255,255,.22)}
.on-blue .jp{color:#fff}
.on-blue .bar{background:#fff}
.on-gray .pu-ghost{color:#fff}

/* ---------- boxed headline ---------- */
.pu-box-w{background:#fff;color:var(--ink);padding:6px 14px;display:inline-block}
.pu-box-b{background:var(--black);color:#fff;padding:6px 14px;display:inline-block}

/* ---------- buttons ---------- */
.pu-btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-weight:900;white-space:nowrap;transition:transform .15s;height:54px;padding:0 40px;font-size:16px;cursor:pointer;border:none;font-family:'Noto Sans JP',sans-serif}
.pu-btn:hover{transform:translateY(-2px)}
.pu-btn-black{background:var(--black);color:#fff}
.pu-btn-black:hover{color:#fff}
.pu-btn-white{background:#fff;color:var(--black)}
.pu-btn-white:hover{color:var(--black)}
.pu-btn-outline{background:#fff;border:2px solid var(--black);color:var(--black)}
.pu-btn-outline:hover{color:var(--black)}
.pu-btn-sm{height:48px;padding:0 26px;font-size:16px}
.pu-btn-row{display:flex;gap:14px;flex-wrap:wrap}
.pu-btn-row.center{justify-content:center}

/* ---------- header ---------- */
.pu-header{position:fixed;top:0;left:0;right:0;z-index:90;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);transition:box-shadow .3s}
.pu-header.is-scrolled{box-shadow:0 8px 30px rgba(20,23,28,.1)}
.pu-header-in{max-width:1320px;margin:0 auto;height:80px;padding:0 clamp(16px,2.5vw,36px);display:flex;align-items:center;gap:clamp(12px,2vw,36px)}
.pu-logo img{height:34px;width:auto;display:block}
.pu-logo .pu-logo-invert{filter:invert(.92)}
.pu-nav{display:flex;align-items:center;margin-left:auto;min-width:0}
.pu-nav ul{display:flex;align-items:center;gap:clamp(14px,1.8vw,30px);margin:0;padding:0;list-style:none}
.pu-nav a{color:var(--ink);font-size:16px;font-weight:900;white-space:nowrap}
.pu-nav a:hover{color:var(--blue)}
.pu-header-cta{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}
.pu-nav + .pu-header-cta{margin-left:0}
.pu-menu-btn{display:none;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:2px solid var(--black);background:#fff;cursor:pointer;flex-direction:column;gap:5px}
.pu-menu-btn span{display:block;width:18px;height:2.5px;background:var(--black)}
.pu-mobile-menu{display:none;position:absolute;top:88px;left:16px;right:16px;background:#fff;box-shadow:0 24px 60px rgba(20,23,28,.2);padding:20px;flex-direction:column;gap:4px}
.pu-mobile-menu.is-open{display:flex}
.pu-mobile-menu a{padding:14px 18px;color:var(--ink);font-size:16px;font-weight:900}
.pu-mobile-menu a:hover{background:var(--gray);color:var(--blue)}
.pu-mobile-menu .pu-btn{margin-top:8px;justify-content:center}
.pu-header-spacer{height:80px}

/* ---------- hero (front) ---------- */
.pu-hero{position:relative;background:linear-gradient(152deg,#0f2a86 0%,#1c46b8 46%,#2f6fd0 100%);overflow:hidden}
.pu-hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.4) 1px,transparent 1px);background-size:26px 26px;opacity:.2;mask-image:radial-gradient(120% 90% at 78% 8%,#000 0%,transparent 68%);-webkit-mask-image:radial-gradient(120% 90% at 78% 8%,#000 0%,transparent 68%);pointer-events:none}
.pu-hero:after{content:"";position:absolute;left:-14%;top:-38%;width:58%;height:190%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);transform:rotate(16deg);pointer-events:none}
.pu-hero-glow{position:absolute;inset:0;background:radial-gradient(64% 86% at 78% 12%,rgba(140,192,250,.62),transparent 62%),radial-gradient(60% 80% at 96% 92%,rgba(61,126,204,.6),transparent 62%),linear-gradient(160deg,rgba(255,255,255,.06),transparent 55%)}
.pu-hero-marq{position:absolute;left:0;right:0;top:96px;overflow:hidden;opacity:.07;pointer-events:none}
.pu-hero-marq .track{display:flex;gap:44px;width:max-content;animation:f-marq 26s linear infinite;will-change:transform}
.pu-hero-marq span{font-family:Manrope,sans-serif;font-size:clamp(44px,6vw,78px);font-weight:800;color:#fff;white-space:nowrap}
.pu-hero-ring{position:absolute;right:56px;top:52px;width:150px;height:150px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.35);animation:f-spin 26s linear infinite;pointer-events:none}
.pu-hero-in{position:relative;max-width:1440px;margin:0 auto;padding:clamp(72px,7.5vh,104px) clamp(24px,3.5vw,56px);min-height:min(82vh,820px);box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:clamp(32px,3.4vw,52px);align-items:center}
.pu-hero-eyebrow{margin:0;color:#fff;font-family:Manrope,sans-serif;font-size:clamp(16px,1.15vw,18px);font-weight:800;letter-spacing:.28em}
.pu-hero h1{margin:20px 0 0;font-size:clamp(30px,4.7vw,82px);font-weight:900;line-height:1.3;color:#fff;letter-spacing:-.025em}
.pu-hero h1 .ln{display:block;white-space:nowrap}
.pu-hero .pu-btn{height:68px;padding:0 48px;font-size:18px}
@media(max-width:600px){.pu-hero .pu-btn{height:56px;padding:0 30px;font-size:16px}}
.pu-hero h1 .hl{background:#fff;color:#1c3faa;padding:2px 14px;display:inline-block}
.pu-hero-note{margin:32px 0 0;color:#fff;font-size:clamp(16px,1.5vw,22px);font-weight:700;line-height:2}
.pu-hero-stack{display:flex;flex-direction:column;gap:14px}
.pu-hero-shot{border-radius:12px;overflow:hidden;box-shadow:0 26px 56px rgba(0,0,0,.42)}
.pu-hero-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.pu-hero-duo .pu-hero-shot{box-shadow:0 20px 44px rgba(0,0,0,.36)}
.pu-hero-stat{border-radius:12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:18px;display:flex;flex-direction:column;justify-content:center}
.pu-hero-stat .n{font-family:Manrope,sans-serif;font-size:30px;font-weight:800;color:#fff}
.pu-hero-stat .l{margin-top:6px;color:rgba(255,255,255,.85);font-size:16px;font-weight:900;line-height:1.7}
.pu-btn-sq{border-radius:6px}
.pu-btn-ghost{background:transparent;border:2px solid rgba(255,255,255,.6);color:#fff}
.pu-btn-ghost:hover{color:#fff}
@keyframes f-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes f-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ---------- page hero (sub) ---------- */
.pu-page-hero{position:relative;background:linear-gradient(152deg,#0f2a86 0%,#1c46b8 52%,#2f6fd0 100%);overflow:hidden}
.pu-page-hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.4) 1px,transparent 1px);background-size:24px 24px;opacity:.18;mask-image:radial-gradient(110% 120% at 88% 0%,#000 0%,transparent 66%);-webkit-mask-image:radial-gradient(110% 120% at 88% 0%,#000 0%,transparent 66%);pointer-events:none}
.pu-page-hero:after{content:"";position:absolute;right:-6%;top:-60%;width:42%;height:220%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transform:rotate(18deg);pointer-events:none}
.pu-page-hero .wedge{position:absolute;right:0;bottom:0;width:18%;height:34%;background:#fff;clip-path:polygon(100% 0,100% 100%,0 100%)}
.pu-page-hero .in{position:relative;max-width:1140px;margin:0 auto;padding:64px clamp(20px,4vw,32px) 78px}
.pu-page-hero .kicker{font-family:Manrope,sans-serif;font-weight:800;font-size:16px;letter-spacing:.3em;color:rgba(255,255,255,.75)}
.pu-page-hero h1{margin:18px 0 0;font-size:clamp(26px,3vw,38px);font-weight:900;line-height:1.6}
.pu-page-hero .lead{margin:22px 0 0;max-width:640px;color:#fff;font-size:16px;font-weight:700;line-height:2.2}

/* ---------- notice bar ---------- */
.pu-notice{background:var(--black);padding:13px 32px;color:#fff;font-size:16px;font-weight:700}
.pu-notice-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 20px}
.pu-notice a{color:#fff;text-decoration:underline}
.pu-notice a:hover{color:#a9c6ec}

/* ---------- sections ---------- */
.pu-sec{padding:64px clamp(20px,4vw,32px) 110px;position:relative;overflow:hidden}
.pu-sec.tight{padding-bottom:90px}
.pu-sec.bg-gray{background:linear-gradient(180deg,#f7f8fb 0%,#eef1f7 100%)}
.pu-sec.bg-gray:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(28,63,170,.14) 1px,transparent 1px);background-size:22px 22px;opacity:.5;mask-image:linear-gradient(180deg,#000,transparent 42%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 42%);pointer-events:none}
.pu-sec.bg-blue{background:linear-gradient(168deg,#1c3faa 0%,#1c46b8 58%,#2a63c6 100%)}
.pu-sec.bg-blue:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.34) 1px,transparent 1px);background-size:26px 26px;opacity:.22;mask-image:radial-gradient(120% 100% at 12% 0%,#000,transparent 62%);-webkit-mask-image:radial-gradient(120% 100% at 12% 0%,#000,transparent 62%);pointer-events:none}
.pu-sec > *{position:relative}

/* plain section decor（白背景セクション） */
.pu-sec:not(.bg-gray):not(.bg-blue){background:linear-gradient(180deg,#fff 0%,#fbfcfe 58%,#f1f4fb 100%)}
.pu-sec:not(.bg-gray):not(.bg-blue):before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(28,63,170,.18) 1px,transparent 1px);background-size:24px 24px;opacity:.5;
  -webkit-mask-image:radial-gradient(78% 62% at 100% 0%,#000,transparent 62%);mask-image:radial-gradient(78% 62% at 100% 0%,#000,transparent 62%);pointer-events:none}
.pu-sec:not(.bg-gray):not(.bg-blue):after{content:"";position:absolute;left:-10%;bottom:-46%;width:38%;height:160%;
  background:linear-gradient(90deg,transparent,rgba(28,63,170,.055),transparent);transform:rotate(-18deg);pointer-events:none}

/* concept/about split */
.pu-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px;align-items:center;margin-top:70px}
.pu-split.rev{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.pu-split h2{margin:0;font-size:clamp(28px,3.4vw,40px);font-weight:900;line-height:1.75}
.pu-split p{margin:22px 0 0;font-size:16px;font-weight:500;line-height:2.4;color:var(--sub)}

/* case rows */
.pu-case-row .head{display:flex;align-items:center;gap:18px}
.pu-case-ic{width:64px;height:64px;border-radius:50%;background:#fff;flex-shrink:0;overflow:hidden}
.pu-bubble{position:relative;flex:1;max-width:460px;background:#fff;border-radius:999px;padding:18px 30px;text-align:center}
.pu-bubble:before{content:"";position:absolute;left:-8px;top:50%;width:18px;height:18px;background:#fff;transform:translateY(-50%) rotate(45deg)}
.pu-bubble span{position:relative;font-size:17px;font-weight:900;letter-spacing:.04em}
.pu-case-row .body{display:flex;align-items:flex-end;gap:20px;margin-top:16px;padding-left:82px}
.pu-case-row .card{flex:1;background:#fff;border-radius:6px;padding:22px 26px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.pu-case-row .card p{margin:0;font-size:16px;font-weight:500;line-height:2.1;color:var(--sub)}
.pu-case-row .card .note{margin:6px 0 0;font-size:12px;color:#9aa1ad}
.pu-case-av{width:70px;height:70px;border-radius:50%;background:#fff;flex-shrink:0;overflow:hidden;animation:f-bob 5.5s ease-in-out infinite}

/* band */
.pu-band{position:relative;margin-top:80px;padding:70px 32px 56px;overflow:hidden;background:rgba(0,0,0,.06)}
.pu-band-marks{position:absolute;top:-40px;left:-60px;right:-200px;bottom:-40px;display:flex;flex-wrap:wrap;gap:34px 60px;align-items:center;justify-content:space-around;animation:f-band 14s linear infinite alternate;pointer-events:none}
.pu-band-marks span{font-family:Manrope,sans-serif;font-weight:800;font-size:22px;color:rgba(255,255,255,.16);white-space:nowrap}
.pu-band-in{position:relative;max-width:840px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.pu-band-in .t{color:#fff;font-size:16px;font-weight:900;letter-spacing:.08em}

/* merit */
.pu-merit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.pu-merit .card{background:#fff;box-shadow:0 16px 44px rgba(20,23,28,.08);padding:44px 40px}
.pu-merit .no{font-family:Manrope,sans-serif;font-size:16px;font-weight:800;color:var(--blue)}
.pu-merit h3{margin:16px 0 0;font-size:clamp(22px,2.4vw,28px);font-weight:900;line-height:1.7;letter-spacing:.02em;text-wrap:pretty}
.pu-merit p{margin:18px 0 0;font-size:16px;font-weight:500;line-height:2.2;color:var(--sub)}
.pu-merit.rev .card{order:2}

/* feature */
.pu-feature-big{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0;margin-top:70px;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.15)}
.pu-feature-big .shot{display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden}
.pu-feature-big .shot .pu-img,.pu-feature-big .shot img{max-width:100%;max-height:340px;width:auto;height:auto;display:block;margin:0 auto}
.pu-feature-big .txt{padding:48px 40px}
.pu-feature-big .no,.pu-feat-card .no{font-family:Manrope,sans-serif;font-weight:800;line-height:1}
.pu-feature-big .no{font-size:38px}
.pu-feature-big h3{margin:16px 0 0;font-size:20px;font-weight:900;letter-spacing:.04em}
.pu-feature-big p{margin:14px 0 0;font-size:16px;font-weight:500;line-height:2.2;color:var(--sub)}
.pu-feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:24px;margin-top:24px}
.pu-feat-card{position:relative;background:#fff;padding:40px 32px 32px;box-shadow:0 14px 36px rgba(0,0,0,.12)}
.pu-feat-card .no{font-size:34px}
.pu-feat-card h3{margin:14px 0 0;font-size:17.5px;font-weight:900;letter-spacing:.03em}
.pu-feat-card p{margin:12px 0 0;font-size:16px;font-weight:500;line-height:2.1;color:var(--sub)}
.pu-feat-card .icon{position:absolute;top:20px;right:20px;width:76px;height:76px;display:flex;align-items:center;justify-content:center;overflow:hidden;animation:f-bob 6s ease-in-out infinite}
.pu-feat-card .icon .pu-img,.pu-feat-card .icon img{max-width:100%;max-height:100%;width:auto;height:auto;display:block}
.pu-feat-card .no,.pu-feat-card h3{padding-right:96px}
.pu-feat-card .note{margin:8px 0 0;font-size:12px;color:#9aa1ad}

/* price */
.pu-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:22px;margin-top:60px;align-items:stretch}
.pu-plan{position:relative;border:2.5px solid var(--black);background:#fff;padding:36px 30px;display:flex;flex-direction:column;gap:16px}
.pu-plan .tag{position:absolute;top:-15px;left:24px;background:var(--blue);color:#fff;font-size:16px;font-weight:900;padding:5px 16px}
.pu-plan .name{font-size:17px;font-weight:900}
.pu-plan .price{font-family:Manrope,sans-serif;font-size:40px;font-weight:800;line-height:1}
.pu-plan .unit{font-size:16px;font-weight:900}
.pu-plan .fn{border-top:2px solid var(--black);padding-top:14px;font-size:16px;font-weight:700;line-height:1.9}
.pu-plan .rec{margin:0;font-size:16px;font-weight:500;line-height:1.9;color:var(--sub)}
.pu-plan .pu-btn{margin-top:auto;justify-content:center;height:50px;font-size:16px}

/* flow */
.pu-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:16px;margin-top:60px}
.pu-step{background:#fff;padding:30px 22px;box-shadow:0 10px 30px rgba(20,23,28,.06)}
.pu-step .no{width:46px;height:46px;border-radius:50%;background:var(--black);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Manrope,sans-serif;font-weight:800;font-size:17px}
.pu-step .t{margin-top:14px;font-size:16px;font-weight:900;line-height:1.7}
.pu-step p{margin:8px 0 0;font-size:16px;font-weight:500;line-height:1.9;color:var(--sub)}
.pu-flow-banner{margin-top:36px;background:var(--black);padding:26px 30px;text-align:center;color:#fff;font-size:16px;font-weight:900;letter-spacing:.04em}
.pu-flow-banner em{color:#a9c6ec;font-style:normal}

/* news list */
.pu-news-list{margin-top:36px;border-top:1px solid var(--line)}
.pu-news-list.hard{border-top:2.5px solid var(--black)}
.pu-news-item{display:grid;grid-template-columns:130px 1fr;gap:18px;padding:16px 6px;border-bottom:1px solid var(--line);color:var(--ink);font-size:16px;align-items:center}
.pu-news-item:hover{color:var(--blue)}
.pu-news-item.tagged{grid-template-columns:130px 104px 1fr;padding:22px 8px}
.pu-news-item .d{font-family:Manrope,sans-serif;font-size:16px;font-weight:800;color:var(--blue)}
.pu-news-item .c{background:var(--paleblue);color:var(--blue);font-size:12px;font-weight:900;padding:5px 0;text-align:center}
.pu-news-item .c.dark{background:var(--black);color:#fff}
.pu-news-item .t{font-weight:700;line-height:1.8}
.pu-news-tabs{display:flex;gap:10px;flex-wrap:wrap}
.pu-news-tabs a{height:44px;padding:0 26px;border:2px solid var(--black);background:#fff;color:var(--black);font-size:16px;font-weight:900;display:inline-flex;align-items:center}
.pu-news-tabs a.on{background:var(--black);color:#fff}

/* faq */
.pu-faq{background:#fff;padding:0 24px;box-shadow:0 6px 20px rgba(20,23,28,.05)}
.pu-faq summary{display:flex;align-items:center;gap:14px;padding:20px 0;cursor:pointer;list-style:none}
.pu-faq summary::-webkit-details-marker{display:none}
.pu-faq .q{font-family:Manrope,sans-serif;font-weight:800;color:var(--blue);font-size:16px}
.pu-faq .q-txt{font-size:16px;font-weight:900;flex:1;line-height:1.8}
.pu-faq .chev{color:#9aa1ad;font-weight:900}
.pu-faq .a{margin:0;padding:0 0 20px 30px;font-size:16px;font-weight:500;line-height:2.1;color:var(--sub)}

/* voice / use-case cards */
.pu-uc{background:#fff;padding:30px 28px;display:flex;flex-direction:column;gap:16px;box-shadow:0 14px 36px rgba(20,23,28,.08)}
.pu-uc .head{display:flex;align-items:center;gap:12px}
.pu-uc .no{width:38px;height:38px;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Manrope,sans-serif;font-weight:800;font-size:16px;flex-shrink:0}
.pu-uc .t{font-size:16.5px;font-weight:900;line-height:1.6}
.pu-ba{padding:16px 18px}
.pu-ba.before{background:var(--gray)}
.pu-ba.after{background:var(--paleblue)}
.pu-ba .lbl{display:inline-flex;color:#fff;padding:3px 12px;font-family:Manrope,sans-serif;font-weight:800;font-size:12px;letter-spacing:.14em}
.pu-ba.before .lbl{background:#5c6672}
.pu-ba p{margin:10px 0 0;font-size:16px;line-height:1.95}
.pu-ba.before p{font-weight:500;color:var(--sub)}
.pu-ba.after p{font-weight:900}
.pu-voice{background:#fff;padding:32px;display:flex;flex-direction:column;gap:14px;box-shadow:0 14px 36px rgba(0,0,0,.14)}
.pu-voice .who{font-size:16px;font-weight:900}
.pu-voice .tag{display:inline-flex;background:var(--blue);color:#fff;padding:2px 10px;font-size:12px;font-weight:900}
.pu-voice h3{margin:0;font-size:16.5px;font-weight:900;line-height:1.7}
.pu-voice .body{font-size:16px;font-weight:500;line-height:2.05;color:var(--sub)}
.pu-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--paleblue);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--blue)}
.pu-avatar img,.pu-avatar .pu-img{width:100%;height:100%;object-fit:cover}
.pu-case-ic .pu-img,.pu-case-av .pu-img{width:100%;height:100%;object-fit:contain}

/* table */
.pu-table{margin-top:56px;background:#fff;padding:10px clamp(24px,4vw,44px);border-top:2.5px solid var(--black);box-shadow:0 14px 36px rgba(20,23,28,.06)}
.pu-row{display:grid;grid-template-columns:minmax(110px,180px) 1fr;border-bottom:1px solid var(--line);padding:18px 0;gap:12px}
.pu-row .k,.pu-row .v{margin:0}
.pu-row .v p{margin:0}
.pu-row:last-child{border-bottom:none}
.pu-row .k{font-size:16px;font-weight:900;line-height:1.6;color:var(--mute)}
.pu-row .v{font-size:16px;font-weight:700;line-height:1.6;white-space:pre-line}
.pu-row .v br{line-height:1.6}

/* form */
.pu-form{background:#fff;border-top:2.5px solid var(--black);padding:clamp(28px,5vw,48px);box-shadow:0 20px 50px rgba(20,23,28,.08);display:flex;flex-direction:column;gap:26px}
.pu-form label{font-size:16px;font-weight:900;display:block;margin-bottom:10px}
.pu-form .req{background:var(--blue);color:#fff;font-size:12px;padding:2px 8px;margin-left:6px}
.pu-form input[type=text],.pu-form input[type=email],.pu-form input[type=tel],.pu-form textarea{width:100%;border:2px solid #d6dae2;padding:12px 16px;font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.8}
.pu-form input:focus,.pu-form textarea:focus{border-color:var(--blue);outline:none}
.pu-form .wpcf7-submit,.pu-form-submit{height:58px;border:none;border-radius:999px;background:var(--black);color:#fff;font-family:'Noto Sans JP',sans-serif;font-size:16px;font-weight:900;cursor:pointer;width:100%}
.pu-form .wpcf7-submit:hover,.pu-form-submit:hover{background:#000}
.pu-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:22px}

/* Contact Form 7 */
.pu-cf7{display:flex;flex-direction:column;gap:26px}
.pu-cf7 .pu-field{display:flex;flex-direction:column}
.pu-cf7 label{font-size:16px;font-weight:900;display:block;margin-bottom:10px}
.pu-cf7 .req{background:var(--blue);color:#fff;font-size:12px;font-weight:900;padding:2px 8px;margin-left:8px;vertical-align:2px}
.pu-cf7 .wpcf7-form-control-wrap{display:block;width:100%}
.pu-cf7 input[type=text],.pu-cf7 input[type=email],.pu-cf7 input[type=tel],.pu-cf7 textarea{
  width:100%;box-sizing:border-box;border:2px solid #d6dae2;border-radius:0;background:#fff;
  padding:14px 16px;font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.8;color:var(--ink);transition:border-color .15s
}
.pu-cf7 input::placeholder,.pu-cf7 textarea::placeholder{color:#a6adba}
.pu-cf7 input:focus,.pu-cf7 textarea:focus{border-color:var(--blue);outline:none}
.pu-cf7 textarea{resize:vertical;min-height:150px}

/* ラジオ（お問い合わせ種別）をボタン状に */
.pu-cf7 .wpcf7-radio{display:flex;flex-wrap:wrap;gap:10px}
.pu-cf7 .wpcf7-list-item{margin:0}
.pu-cf7 .wpcf7-list-item label{display:flex;align-items:center;gap:9px;margin:0;cursor:pointer;
  height:52px;padding:0 22px;border:2px solid var(--black);background:#fff;font-size:16px;font-weight:900;transition:background .15s,color .15s}
.pu-cf7 .wpcf7-list-item label:hover{background:#f4f5f7}
.pu-cf7 .wpcf7-list-item input[type=radio]{appearance:none;-webkit-appearance:none;width:16px;height:16px;margin:0;border:2px solid var(--black);border-radius:50%;flex-shrink:0;transition:box-shadow .15s,background .15s}
.pu-cf7 .wpcf7-list-item input[type=radio]:checked{background:var(--blue);border-color:var(--blue);box-shadow:inset 0 0 0 3px #fff}
.pu-cf7 .wpcf7-list-item:has(input:checked) label{background:var(--black);color:#fff}
.pu-cf7 .wpcf7-list-item:has(input:checked) input[type=radio]{border-color:#fff;background:#fff;box-shadow:inset 0 0 0 3px var(--black)}

/* 同意チェック */
.pu-cf7 .pu-privacy{font-size:14px;font-weight:700;color:var(--sub);line-height:1.9}
.pu-cf7 .wpcf7-acceptance .wpcf7-list-item label{display:inline-flex;height:auto;padding:0;border:0;background:none;font-weight:700}
.pu-cf7 input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--black);background:#fff;margin:0 8px 0 0;cursor:pointer;flex-shrink:0;position:relative}
.pu-cf7 input[type=checkbox]:checked{background:var(--blue);border-color:var(--blue)}
.pu-cf7 input[type=checkbox]:checked::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}

/* 送信ボタン */
.pu-cf7 .pu-form-submit,.pu-cf7 input[type=submit]{
  width:100%;height:62px;border:none;border-radius:999px;background:var(--black);color:#fff;
  font-family:'Noto Sans JP',sans-serif;font-size:17px;font-weight:900;cursor:pointer;transition:transform .15s,background .15s
}
.pu-cf7 .pu-form-submit:hover,.pu-cf7 input[type=submit]:hover{background:#000;transform:translateY(-2px)}
.pu-cf7 .wpcf7-spinner{display:block;margin:14px auto 0}

/* バリデーション・応答メッセージ */
.pu-cf7-form .wpcf7-not-valid-tip{margin-top:8px;font-size:14px;font-weight:900;color:#c0392b}
.pu-cf7 input.wpcf7-not-valid,.pu-cf7 textarea.wpcf7-not-valid{border-color:#c0392b;background:#fdf3f2}
.pu-cf7-form .wpcf7-response-output{
  margin:24px 0 0!important;padding:16px 20px!important;border:0!important;border-left:5px solid var(--blue)!important;
  background:var(--paleblue);font-size:15px;font-weight:900;line-height:1.9;color:var(--ink)
}
.pu-cf7-form.invalid .wpcf7-response-output,.pu-cf7-form.unaccepted .wpcf7-response-output,
.pu-cf7-form.failed .wpcf7-response-output,.pu-cf7-form.aborted .wpcf7-response-output{
  border-left-color:#c0392b!important;background:#fdf3f2;color:#a5342a
}
.pu-cf7-form.sent .wpcf7-response-output{border-left-color:#1c9c5b!important;background:#eaf7f0;color:#186b43}
.pu-form .wpcf7{margin:0}
@media(max-width:600px){
  .pu-cf7 .wpcf7-radio{flex-direction:column}
  .pu-cf7 .wpcf7-list-item label{justify-content:center}
}

/* article */
.pu-article{background:#fff;padding:clamp(28px,5vw,56px);box-shadow:0 14px 36px rgba(20,23,28,.08);border-top:2.5px solid var(--black);margin-top:40px}
.pu-article h1{font-size:clamp(24px,3vw,32px);font-weight:900;line-height:1.7;margin:12px 0 0}
.pu-article .meta{display:flex;gap:14px;align-items:center;font-size:16px;color:var(--mute);flex-wrap:wrap}
.pu-article .content{margin-top:32px;font-size:16px;line-height:2.2}
.pu-article .content h2{font-size:21px;border-left:5px solid var(--blue);padding-left:14px;line-height:1.6}

/* footer CTA + footer */
.pu-cta{position:relative;background:var(--blue);padding:76px 32px;overflow:hidden;text-align:center}
.pu-cta .w1{position:absolute;left:0;top:0;width:26%;height:40%;background:rgba(255,255,255,.08);clip-path:polygon(0 0,100% 0,0 100%)}
.pu-cta .w2{position:absolute;right:0;bottom:0;width:20%;height:34%;background:rgba(0,0,0,.12);clip-path:polygon(100% 0,100% 100%,0 100%)}
.pu-cta .k{font-family:Manrope,sans-serif;font-weight:800;font-size:16px;letter-spacing:.3em;color:rgba(255,255,255,.75);position:relative}
.pu-cta .t{margin-top:16px;color:#fff;font-size:clamp(20px,2.6vw,28px);font-weight:900;line-height:1.9;position:relative}
.pu-cta .note{margin:26px 0 0;position:relative;display:flex;justify-content:center}
.pu-cta .note span.txt{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;background:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.4);border-radius:999px;padding:13px 30px;color:#fff;font-size:17px;font-weight:900;line-height:1.7}
.pu-cta .note span.badge{background:#fff;color:var(--blue);border-radius:999px;padding:3px 14px;font-size:15px;font-weight:900;white-space:nowrap}
.pu-footer{background:var(--black);padding:56px 32px 30px}
.pu-footer-in{max-width:1140px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center}
.pu-footer-in img{height:32px}
.pu-footer-in .info{color:#8b93a1;font-size:16px;font-weight:500;line-height:2}
.pu-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;border-top:1px solid rgba(255,255,255,.12);padding-top:22px;width:100%}
.pu-footer-nav a{color:#fff;font-size:16px;font-weight:700}
.pu-footer-nav a:hover{color:#a9c6ec}
.pu-footer-in .cp{color:#8b93a1;font-size:12px;font-family:Manrope,sans-serif}

/* images: default fills its box, keeps aspect ratio; containers below can override */
.pu-img{width:100%;height:auto;display:block;max-width:100%;aspect-ratio:auto!important}
img[height="0"],img[width="0"]{height:auto!important;width:100%!important}
/* コラム記事カード */
.pu-col-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:26px;margin-top:40px}
.pu-col-card{display:flex;flex-direction:column;background:#fff;box-shadow:0 14px 36px rgba(20,23,28,.1);color:var(--ink);transition:transform .18s,box-shadow .18s}
.pu-col-card:hover{color:var(--ink);transform:translateY(-3px);box-shadow:0 20px 46px rgba(20,23,28,.16)}
.pu-col-card .pu-img{width:100%;height:190px;object-fit:cover}
.pu-col-card .body{display:flex;flex-direction:column;gap:10px;padding:24px;flex:1}
.pu-col-card .meta{display:flex;align-items:center;gap:12px}
.pu-col-card .d{font-family:Manrope,sans-serif;font-size:16px;font-weight:800;color:var(--blue)}
.pu-col-card .c{background:var(--paleblue);color:var(--blue);font-size:12px;font-weight:900;padding:4px 12px}
.pu-col-card .t{font-size:16px;font-weight:900;line-height:1.8;flex:1;text-wrap:pretty}
.pu-col-card .arrow{align-self:flex-end;font-weight:900;color:var(--blue)}

/* その他サービス バナー */
.pu-banner{display:block;background:#fff;color:var(--ink);box-shadow:0 14px 36px rgba(20,23,28,.1);overflow:hidden;transition:transform .18s,box-shadow .18s}
.pu-banner:hover{color:var(--ink);transform:translateY(-3px);box-shadow:0 20px 46px rgba(20,23,28,.16)}

/* FUNCTION（POLI UPでできること）: 背景を出さず透過画像をそのまま表示 */
.pu-split-img{background:none;box-shadow:none;padding:0;display:flex;align-items:center;justify-content:center}
.pu-split-img .pu-img{max-width:100%;max-height:360px;width:auto;height:auto;display:block;background:none}

/* SUPPORT (2つの活動) */
.pu-support-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:26px;margin-top:60px}
.pu-support-card{background:#fff;box-shadow:0 18px 44px rgba(20,23,28,.1);overflow:hidden;padding:44px 40px 40px}
.pu-support-img{display:flex;align-items:flex-end;justify-content:center;min-height:300px}
.pu-support-img .pu-img{max-width:100%;max-height:300px;width:auto;height:auto;display:block}
.pu-support-img:empty{min-height:120px}
.pu-support-txt{margin-top:28px}
.pu-support-card .no{font-family:Manrope,sans-serif;font-size:72px;font-weight:800;line-height:1}
.pu-support-badge{position:absolute;left:50%;top:90px;transform:translate(-50%,-50%);z-index:3;width:132px;height:132px;border-radius:50%;background:#fff;box-shadow:0 18px 44px rgba(20,23,28,.28);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.pu-support-badge .n{font-family:Manrope,sans-serif;font-size:19px;font-weight:800;letter-spacing:.04em}
.pu-support-badge .l{margin-top:6px;font-size:12px;font-weight:900;color:var(--mute)}

/* first-visit popup */
@keyframes pu-pop-in{from{opacity:0;transform:translateY(26px) scale(.96)}to{opacity:1;transform:none}}
@keyframes pu-pop-fade{from{opacity:0}to{opacity:1}}
.pu-pop{position:fixed;inset:0;z-index:9990;display:flex;align-items:center;justify-content:center;padding:24px}
.pu-pop[hidden]{display:none}
.pu-pop-overlay{position:absolute;inset:0;background:rgba(15,23,42,.62);animation:pu-pop-fade .3s ease both;cursor:pointer}
.pu-pop-card{position:relative;width:min(500px,100%);max-height:calc(100vh - 48px);overflow-y:auto;background:#fff;
  box-shadow:0 40px 90px rgba(0,0,0,.42);animation:pu-pop-in .5s cubic-bezier(.2,.9,.3,1) both}
.pu-pop-cover{position:relative;background:#0f2a86;padding:22px 22px 0}
.pu-pop-cover img{width:100%;height:auto;max-height:min(246px,32vh);object-fit:contain;display:block;box-shadow:0 -6px 30px rgba(0,0,0,.3)}
.pu-pop-x{position:absolute;right:-14px;top:-14px;width:42px;height:42px;border-radius:50%;background:#fff;border:none;
  box-shadow:0 8px 24px rgba(0,0,0,.3);font-size:18px;font-weight:900;color:var(--ink);cursor:pointer;line-height:1}
.pu-pop-x:hover{background:var(--black);color:#fff}
.pu-pop-body{padding:28px 32px 32px}
.pu-pop-body h2{margin:0;font-size:24px;font-weight:900;line-height:1.6;text-align:center}
.pu-pop-checks{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.pu-pop-checks li{display:flex;gap:11px;align-items:flex-start;font-size:15px;font-weight:700;line-height:1.85}
.pu-pop-checks .ck{color:var(--blue);font-weight:900;flex-shrink:0}
.pu-pop-note{margin:16px 0 0;font-size:14px;font-weight:500;line-height:1.95;color:var(--sub);text-align:center}
.pu-pop-cta{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;height:62px;border-radius:999px;
  background:var(--black);color:#fff;font-size:17px;font-weight:900;transition:transform .15s,background .15s}
.pu-pop-cta:hover{color:#fff;background:#000;transform:translateY(-2px)}
.pu-pop-later{display:block;width:100%;margin-top:12px;background:none;border:none;color:var(--mute);
  font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:700;cursor:pointer;text-decoration:underline}
@media(max-width:600px){
  .pu-pop{padding:16px}
  .pu-pop-cover{padding:18px 18px 0}
  .pu-pop-x{right:-10px;top:-10px;width:38px;height:38px;font-size:17px}
  .pu-pop-body{padding:24px 22px 26px}
  .pu-pop-body h2{font-size:21px}
  .pu-pop-checks li{font-size:14.5px}
  .pu-pop-cta{height:58px;font-size:16px}
}
/* 低い画面でもCTAが必ず見えるように圧縮 */
@media(max-height:760px){
  .pu-pop-cover{padding:14px 14px 0}
  .pu-pop-body{padding:18px 24px 22px}
  .pu-pop-body h2{font-size:20px}
  .pu-pop-checks{margin-top:14px;gap:7px}
  .pu-pop-checks li{font-size:14px;line-height:1.7}
  .pu-pop-note{margin-top:12px;font-size:13px}
  .pu-pop-cta{margin-top:16px;height:56px;font-size:16px}
  .pu-pop-later{margin-top:9px}
}
@media(prefers-reduced-motion:reduce){.pu-pop-card,.pu-pop-overlay{animation:none}}

/* pagination */
.pu-pager{margin-top:56px}
.pu-pager .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pu-pager .nav-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px}
.pu-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:52px;padding:0 14px;
  border:2px solid var(--black);background:#fff;color:var(--ink);font-family:Manrope,sans-serif;font-size:17px;font-weight:800;
  transition:background .15s,color .15s,transform .15s}
.pu-pager .page-numbers:hover{background:var(--paleblue);color:var(--blue);transform:translateY(-2px)}
.pu-pager .page-numbers.current{background:var(--black);color:#fff;border-color:var(--black)}
.pu-pager .page-numbers.dots{border-color:transparent;background:none;min-width:24px;padding:0;font-weight:900;color:var(--mute)}
.pu-pager .page-numbers.dots:hover{background:none;transform:none;color:var(--mute)}
.pu-pager .page-numbers.prev,.pu-pager .page-numbers.next{border-radius:999px;padding:0 26px;gap:8px;font-family:'Noto Sans JP',sans-serif;font-size:15px;font-weight:900}
.pu-pager .page-numbers.prev:hover,.pu-pager .page-numbers.next:hover{background:var(--black);color:#fff}
@media(max-width:600px){
  .pu-pager{margin-top:44px}
  .pu-pager .nav-links{gap:8px}
  .pu-pager .page-numbers{min-width:48px;height:48px;font-size:16px}
  .pu-pager .page-numbers.prev,.pu-pager .page-numbers.next{width:100%;order:9}
  .pu-pager .page-numbers.prev{order:-1}
}

/* image placeholder (未使用: 未設定枠は何も出力しません) */
.pu-img-ph{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,#eef1f7 0,#eef1f7 14px,#e4e9f2 14px,#e4e9f2 28px);color:var(--mute);font-size:16px;font-weight:700;text-align:center;padding:12px;width:100%}
.h-320{min-height:320px}.h-340{min-height:340px}.h-210{min-height:210px}.h-160{min-height:160px}.h-300{min-height:300px}.h-260{min-height:260px}.h-160{min-height:160px}.h-150{min-height:150px}.h-90{min-height:90px}.h-54{min-height:54px}.h-76{min-height:76px}.h-88{min-height:88px}.h-400{min-height:400px}
.pu-photo-frame{background:#fff;padding:12px;box-shadow:0 20px 50px rgba(20,23,28,.1)}

/* reveal + anims */
@keyframes pu-rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.pu-reveal{opacity:1;transform:none}
.pu-reveal.on{animation:pu-rise .8s ease both}
@keyframes f-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes f-bob2{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(-2deg)}}
@keyframes f-sway{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(2.5deg)}}
@keyframes f-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(12px,-16px)}}
@keyframes f-band{from{transform:rotate(-8deg) translateX(0)}to{transform:rotate(-8deg) translateX(-120px)}}
.anim-bob{animation:f-bob 7s ease-in-out infinite}
.anim-bob2{animation:f-bob2 6s ease-in-out infinite}
.anim-sway{animation:f-sway 8s ease-in-out infinite}
.anim-drift{animation:f-drift 9s ease-in-out infinite}

/* cursor: comet trail + ripple */
#pu-cursor-layer{display:none}
.pu-cursor-dot,.pu-cursor-ripple{position:absolute;top:0;left:0;border-radius:50%;pointer-events:none}
@media(hover:hover) and (pointer:fine){
  #pu-cursor-layer{display:block;position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
  .pu-cursor-dot{background:var(--blue);opacity:0;will-change:transform;transition:opacity .3s}
  .pu-cursor-ripple{border:1.5px solid rgba(28,63,170,.5);opacity:1;will-change:transform,opacity;transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .9s ease}
}
@media(prefers-reduced-motion:reduce){#pu-cursor-layer{display:none!important}}

/* responsive */
@media(max-width:1180px){.pu-nav{display:none}.pu-menu-btn{display:flex}}
@media(max-width:900px){
  .pu-hero-in{grid-template-columns:minmax(0,1fr)}
  .pu-hero-ring{display:none}
}
/* iPad tune (768-1024) */
@media(min-width:768px) and (max-width:1024px){
  .pu-hero-in{min-height:min(80vh,780px);padding-left:40px;padding-right:40px;gap:40px}
  .pu-hero h1{font-size:clamp(34px,4.8vw,54px)}
  .pu-hero-mock{max-width:560px;margin:0 auto;width:100%}
  .pu-page-hero .in{padding-left:40px;padding-right:40px}
}
@media(min-width:768px) and (max-width:900px){
  .pu-hero-in{text-align:center}
  .pu-hero-in .pu-btn-row{justify-content:center}
}
@media(max-width:880px){
  .pu-feat-card .icon{position:static;width:100%;height:auto;max-height:120px;margin:14px 0 0;justify-content:flex-start;animation:none}
  .pu-feat-card .icon .pu-img{max-height:120px;max-width:100%;width:auto;height:auto;object-fit:contain}
  .pu-feat-card .no,.pu-feat-card h3{padding-right:0}
  .pu-hero-in{grid-template-columns:minmax(0,1fr);padding-bottom:70px}
  .pu-hero-marq{display:none}
  .pu-hero-duo{grid-template-columns:minmax(0,1fr)}
  .pu-split,.pu-split.rev,.pu-merit{grid-template-columns:minmax(0,1fr)}
  .pu-merit.rev .card{order:0}
  .pu-feature-big{grid-template-columns:minmax(0,1fr)}
  .pu-case-row .body{padding-left:0}
  .pu-band-marks,.anim-bob,.anim-bob2,.anim-sway,.anim-drift{animation:none}
}
@media(max-width:640px){
  .pu-header-cta .pu-btn-outline{display:none}
  .pu-news-item.tagged{grid-template-columns:130px 104px;grid-template-rows:auto auto}
  .pu-news-item.tagged .t{grid-column:1/-1}
  .pu-btn{height:50px;padding:0 30px;font-size:16px}
}
@media(prefers-reduced-motion:reduce){.pu-reveal{animation:none!important}.anim-bob,.anim-bob2,.anim-sway,.anim-drift,.pu-band-marks,.pu-mock-browser,.pu-mock-phone{animation:none!important}}

.pu-feature-big img,.pu-feature-big .pu-img-ph{max-width:100%}
/* SP: FEATURE01 GIF は縦に伸ばさず、白ボックス内に自然な比率で収める */
@media(max-width:880px){
  .pu-feature-big .shot{padding:0!important;min-height:0!important;order:3;width:100%}
  .pu-feature-big .shot .pu-img,.pu-feature-big .shot img{max-height:230px!important;max-width:100%!important;width:auto!important;height:auto!important;object-fit:contain;margin:0 auto}
}
/* narrow screens: title -> image -> body */
@media(max-width:880px){
  .pu-feat-card .icon{position:static;width:100%;height:auto;max-height:120px;margin:14px 0 0;justify-content:flex-start;animation:none}
  .pu-feat-card .icon .pu-img{max-height:120px;max-width:100%;width:auto;height:auto;object-fit:contain}
  .pu-feat-card .no,.pu-feat-card h3{padding-right:0}
  .pu-split{display:flex!important;flex-direction:column;gap:24px}
  .pu-split > div:first-child{display:contents}
  .pu-split h2{order:1}
  .pu-split-img,.pu-split .anim-bob,.pu-split .anim-sway,.pu-split .anim-bob2{order:2;width:100%;align-self:stretch}
  .pu-split-img img,.pu-split-img .pu-img-ph{width:100%;min-height:220px}
  .pu-split p{order:3;margin-top:0!important}
  /* FUNCTION: タグ → 見出し → 写真 → 本文 → 箇条書き */
  .pu-fn{display:flex!important;flex-direction:column;gap:20px!important}
  .pu-fn-txt{display:contents}
  .pu-fn-txt > div:first-child{order:1}
  .pu-fn-txt h3{order:2;margin-top:0!important;font-size:21px!important}
  .pu-fn-img{order:3;width:100%;align-self:stretch}
  .pu-fn-txt > p{order:4;margin-top:0!important}
  .pu-fn-txt > div:last-child{order:5;margin-top:0!important}
  .pu-merit{display:flex!important;flex-direction:column;gap:24px}
  .pu-merit .card{display:contents}
  .pu-merit .no{order:1}
  .pu-merit h3{order:2;margin-top:8px!important}
  .pu-merit-img,.pu-merit > div:last-child{order:3;width:100%;align-self:stretch}
  .pu-merit-img img,.pu-merit-img .pu-img-ph{width:100%;min-height:220px}
  .pu-merit h3{font-size:23px!important}
  .pu-merit p{order:4;margin-top:0!important}
  .pu-merit .pu-btn{order:5;align-self:flex-start}
  .pu-feature-big{display:flex!important;flex-direction:column;padding:32px 26px;gap:16px}
  .pu-feature-big .txt{display:contents}
  .pu-feature-big .no{order:1}
  .pu-feature-big h3{order:2;margin-top:6px!important}
  .pu-feature-big img,.pu-feature-big .pu-img-ph{order:3;width:100%;min-height:220px}
  .pu-feature-big h3{font-size:19px!important}
  .pu-feature-big p{order:4;margin-top:0!important}
  .pu-feature-big .pu-btn{order:5;align-self:flex-start}
}
/* mobile-tune */
@media(max-width:600px){
  .pu-case-row .body{padding-left:0!important;flex-direction:column;align-items:stretch!important;gap:12px}
  .pu-case-av{align-self:flex-end}
  .pu-hero-duo,.pu-merit,.pu-split,.pu-split.rev,.pu-feature-big{grid-template-columns:minmax(0,1fr)!important}
  .pu-merit.rev .card{order:0}
  .pu-row{grid-template-columns:minmax(0,1fr)!important;gap:4px}
  .pu-news-item{grid-template-columns:minmax(0,1fr)!important;row-gap:6px}
  .pu-news-item.tagged{grid-template-columns:110px minmax(0,1fr)!important;row-gap:8px}
  .pu-news-item.tagged .t{grid-column:1/-1}
  .pu-hero p br,.pu-page-hero .lead br,.pu-split p br,.pu-about-stack p br,.pu-sec p br{display:none}
  .pu-sec,.pu-cta,.pu-footer{padding-left:18px!important;padding-right:18px!important}
  .pu-sec{padding-top:44px!important;padding-bottom:56px!important}
  .pu-page-hero .in{padding:44px 18px 56px}
  .pu-hero-in{padding:56px 18px 64px}
  .pu-hero h1{font-size:26px!important;line-height:1.6!important}
  .pu-support-badge{display:none!important}
}
/* SP: 自社番組 ラベル → タイトル → 写真 → 本文 → ボタン */
@media(max-width:880px){
  .pu-prg{display:flex!important;flex-direction:column;gap:22px!important}
  .pu-prg-txt{display:contents}
  .pu-prg-txt > div:first-child,.pu-prg-label{order:1}
  .pu-prg-txt h2{order:2;margin-top:0!important}
  .pu-prg-img{order:3;width:100%;align-self:stretch}
  .pu-prg-txt p{order:4;margin-top:0!important}
  .pu-prg-txt .pu-btn{order:5;align-self:flex-start;margin-top:0!important}
}

/* empty image wrappers — 画像未設定時に枠・影・余白を出さない */
.pu-photo-frame:empty,.pu-hero-shot:empty,.pu-case-ic:empty,.pu-case-av:empty,
.pu-feat-card .icon:empty,.pu-avatar:empty,.pu-support-img:empty,.pu-banner-img:empty{
  display:none!important;padding:0!important;background:none!important;box-shadow:none!important;border:0!important;min-height:0!important
}
.pu-merit .shot:empty,.pu-split > div:empty,.pu-about-stack > div:empty{display:none!important}
