/* Layout follows the structure of paypal.com/kr/home (header, centered hero band with overlapping card,
   alternating tall-image feature rows, full-bleed photo + marquee, deep band, CTA band, black footer).
   Colors are swapped for a quiet luxury palette: champagne, deep navy, bronze. */
:root{
  --ink:#0c1526; --deep:#14233f; --champ:#e9dfcf; --champ2:#f5f0e7; --bronze:#b3956a;
  --text:#2a3345; --muted:#6a7385; --pill:rgba(20,35,63,.08); --line:#e3dccf;
  --r-xl:32px; --r-lg:28px; --r-md:22px; --max:1180px; --gut:40px; --gnb-h:76px;
  --ease:cubic-bezier(.22,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--text);font:400 16px/1.8 "Pretendard Variable",Pretendard,"NanumSquare","Apple SD Gothic Neo","Malgun Gothic",sans-serif;letter-spacing:-.01em;word-break:keep-all;overflow-wrap:break-word}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{color:var(--ink);margin:0;font-weight:900;line-height:1.18;letter-spacing:-.035em}
h1{font-size:clamp(34px,5.4vw,72px)}
h2{font-size:clamp(26px,3.2vw,44px)}
h2 .h-en{display:block;font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(34px,4.4vw,60px);line-height:1.08;letter-spacing:-.015em;color:inherit}
h2 .h-ko{display:block;margin-top:14px;font-size:clamp(14.5px,1.25vw,16.5px);font-weight:600;line-height:1.55;letter-spacing:-.02em;color:var(--muted)}
.deep h2 .h-ko{color:rgba(255,255,255,.66)}
h3{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.45}
p{margin:0 0 14px}
figure{margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:900px}

/* Pills */
.pill{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 24px;border-radius:1000px;background:var(--pill);color:var(--ink);font-weight:700;font-size:15.5px;text-decoration:none;border:0;transition:transform .3s var(--ease),background .3s,color .3s}
.pill:hover{transform:translateY(-2px);background:rgba(20,35,63,.14)}
.pill--dark{background:var(--ink);color:#fff}
.pill--dark:hover{background:var(--deep)}
.pill--light{background:#fff;color:var(--ink)}
.pill--light:hover{background:var(--champ2)}
.pill--lg{min-height:54px;padding:0 32px;font-size:16.5px}
.pill--block{width:100%}

/* Header: full width, nav next to logo on the left, action on the right */
.gnb{position:sticky;top:0;z-index:50;background:#fff}
.gnb__in{height:var(--gnb-h);padding:0 var(--gut);display:flex;align-items:center;justify-content:space-between;gap:24px}
.gnb__left{display:flex;align-items:center;gap:36px}
.gnb__logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;font-size:19px;color:var(--ink);letter-spacing:-.03em}
.gnb__logo img{width:34px;height:34px;border-radius:50%}
.gnb__nav{display:flex;gap:4px}
.gnb__nav a{text-decoration:none;font-size:15px;font-weight:600;color:var(--ink);padding:9px 14px;border-radius:1000px;transition:background .25s var(--ease)}
.gnb__nav a:hover,.gnb__nav a[aria-current]{background:var(--pill)}
.gnb__right{display:flex;align-items:center;gap:10px}
.gnb__right .pill{min-height:42px;padding:0 22px;font-size:14.5px}
.gnb__toggle{display:none;width:42px;height:42px;border:0;border-radius:50%;background:var(--pill);position:relative;cursor:pointer}
.gnb__toggle span{position:absolute;left:13px;right:13px;height:1.6px;background:var(--ink);transition:transform .3s var(--ease)}
.gnb__toggle span:first-child{top:17px}.gnb__toggle span:last-child{top:24px}
.gnb.open .gnb__toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
.gnb.open .gnb__toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* Hero: untouched photo on top, compact text band underneath */
.hero{background:var(--champ)}
.hero__bg{position:relative;height:min(640px,70vh);background:var(--deep)}
.hero__bg img{width:100%;height:100%;object-fit:cover}
.hero__wrap{padding-top:52px;padding-bottom:60px}
.hero__txt{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end}
.hero h1{margin:0;font-size:clamp(36px,5vw,64px)}
.lead{margin:0 0 24px;font-size:clamp(15.5px,1.3vw,17.5px);font-weight:500;line-height:1.75;letter-spacing:-.02em;color:var(--text);max-width:520px}
.hero__cta{display:flex;flex-wrap:wrap;gap:10px}
.hero .pill--lg{min-height:46px;padding:0 24px;font-size:15px}
.hero .pill:not(.pill--dark){background:rgba(20,35,63,.1)}

/* Photo strip */
.strip{padding:90px 0 20px}
.strip__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.strip__item img{width:100%;aspect-ratio:3/3.8;object-fit:cover;border-radius:var(--r-lg)}
.strip__item figcaption{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.55}

/* Feature rows: big heading on top, body at the bottom, tall rounded image */
.row{padding:64px 0}
.row__grid{display:grid;grid-template-columns:1fr 480px;gap:72px;align-items:stretch}
.row--rev .row__grid{grid-template-columns:480px 1fr}
.row--rev .row__img{order:-1}
.row__img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--line)}
.row__img img{width:100%;height:100%;object-fit:cover}
.row__txt{display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:6px 0}
.row__txt h2{max-width:560px}
.row__body{max-width:480px}
.row__body a:not(.pill),.narrow p a:not(.pill){color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--bronze)}
.ticks{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:22px}
.ticks li::before{content:"";position:absolute;left:2px;top:.75em;width:8px;height:8px;border-radius:50%;background:var(--bronze)}

/* Full-bleed photo + marquee */
.photoband{margin-top:56px}
.photoband figure img{width:100%;height:560px;object-fit:cover}

/* Deep band */
.deep{background:var(--deep);color:#d6dbe6;padding:110px 0 120px}
.deep h2{color:#fff;margin-bottom:44px;max-width:620px}
.deep__grid{display:grid;grid-template-columns:1fr 440px;gap:80px;align-items:center}
.deep__img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5}
.deep__img img{width:100%;height:100%;object-fit:cover}
.steps{list-style:none;counter-reset:s;margin:0;padding:0}
.steps li{counter-increment:s;display:flex;gap:22px;align-items:baseline;padding:20px 0;border-top:1px solid rgba(255,255,255,.16);font-size:19px;font-weight:700;line-height:1.55;color:#fff}
.steps li:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.steps li::before{content:counter(s,decimal-leading-zero);flex:0 0 36px;color:var(--bronze);font-weight:800;font-size:16px}

/* Cost table */
.tablesec{padding:110px 0 70px}
.tablesec h2{margin-bottom:16px}
.tablewrap{margin-top:26px;border-radius:var(--r-md);overflow:hidden;background:var(--champ2)}
table{width:100%;border-collapse:collapse;font-size:15.5px}
th,td{padding:20px 24px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
thead th{background:var(--champ);color:var(--ink);font-weight:800;font-size:14.5px}
tbody th{color:var(--ink);font-weight:800;width:24%}
tbody tr:last-child>*{border-bottom:0}

/* Photo duo */
.duo{padding:30px 0 100px}
.duo__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.duo img{width:100%;aspect-ratio:4/3.1;object-fit:cover;border-radius:var(--r-lg)}

/* Consultation embed */
.formframe{margin-top:22px;border-radius:var(--r-md);overflow:hidden;background:#fff;border:1px solid var(--line)}
.formframe iframe{display:block;border:0;min-height:700px}

/* FAQ accordion */
.faq{display:grid;gap:12px;margin-top:34px}
.faq__item{background:#fff;border-radius:var(--r-md);overflow:hidden;transition:box-shadow .3s var(--ease)}
.faq__item[open]{box-shadow:0 14px 30px rgba(12,21,38,.08)}
.faq__item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:focus-visible{outline:2px solid var(--ink);outline-offset:-2px;border-radius:var(--r-md)}
.faq__item h3{display:flex;gap:14px;align-items:baseline;margin:0}
.faq__chev{flex:0 0 32px;height:32px;border-radius:50%;background:var(--pill);position:relative;transition:transform .35s var(--ease)}
.faq__chev::before{content:"";position:absolute;left:11px;top:10px;width:8px;height:8px;border-right:1.8px solid var(--ink);border-bottom:1.8px solid var(--ink);transform:rotate(45deg)}
.faq__item[open] .faq__chev{transform:rotate(180deg)}
.faq__ans{margin:0;display:flex;gap:14px;align-items:baseline;padding:0 28px 26px;animation:faqin .4s var(--ease)}
@keyframes faqin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.faq__q,.faq__a{flex:0 0 28px;font-weight:500;font-size:17px;font-style:italic;font-family:Georgia,'Times New Roman',serif;letter-spacing:0}
.faq__q{color:var(--ink)}.faq__a{color:var(--bronze)}

/* Related cards + banner */
.more{padding:110px 0 100px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}
.card{display:block;text-decoration:none;transition:transform .4s var(--ease)}
.card:hover{transform:translateY(-5px)}
.card__img{display:block;border-radius:var(--r-lg);overflow:hidden}
.card__img img{width:100%;aspect-ratio:4/3.2;object-fit:cover;transition:transform .6s var(--ease)}
.card:hover .card__img img{transform:scale(1.04)}
.card__body{display:block;padding:16px 4px 0}
.card__body strong{display:block;color:var(--ink);font-size:19px;font-weight:800;letter-spacing:-.03em}
.card__body em{display:block;font-style:normal;color:var(--muted);font-size:14.5px;margin-top:2px}
.banner{position:relative;display:block;margin-top:44px;border-radius:var(--r-xl);overflow:hidden;text-decoration:none;color:#fff}
.banner img{width:100%;height:380px;object-fit:cover}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,21,38,.84),rgba(12,21,38,.2))}
.banner__txt{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:22px;padding:0 56px}
.banner__txt strong{font-size:clamp(22px,3vw,36px);font-weight:900;line-height:1.35;max-width:520px;letter-spacing:-.03em}

/* CTA band */
.cta{background:var(--champ);padding:96px 0 72px;text-align:center}
.cta__big{font-size:clamp(19px,3vw,38px);font-weight:800;line-height:1.3;letter-spacing:-.035em;color:var(--ink);margin:0 auto 16px;white-space:nowrap}
.cta__sub{margin:0 auto 30px;font-size:clamp(12.5px,1.4vw,16px);white-space:nowrap;color:var(--text)}
.updated{margin:54px 0 0;color:var(--muted);font-size:13.5px}

/* Footer: two ends */
.foot{background:#0a111f;color:#aab3c5;padding:64px 0 calc(56px + env(safe-area-inset-bottom))}
.foot__in{padding:0 var(--gut)}
.foot__row{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}
.foot__row--b{margin-top:30px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12);align-items:center}
.foot__brand{color:#fff;font-weight:900;font-size:24px;letter-spacing:-.03em;margin:0}
.foot__copy{margin:0;font-size:13px;color:#7b869b}
.foot address{font-style:normal;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 28px;font-size:14px;line-height:1.9;text-align:right}

/* Floating main button + mobile CTA bar */
.floatmain{position:fixed;right:22px;bottom:26px;z-index:40;background:#fff;color:var(--ink);box-shadow:0 10px 28px rgba(12,21,38,.18);padding:12px 22px;border-radius:1000px;font-size:14px;font-weight:800;text-decoration:none;transition:transform .3s var(--ease)}
.floatmain:hover{transform:translateY(-2px)}
.mbar{display:none}

/* Scroll reveal */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}}

/* Tablet */
@media (max-width:1024px){
  :root{--gut:28px}
  .gnb__left{gap:18px}.gnb__nav a{padding:8px 10px;font-size:14px}
  .row__grid,.row--rev .row__grid{grid-template-columns:1fr 1fr;gap:44px}
  .row--rev .row__grid{grid-template-columns:1fr 1fr}
  .deep__grid{grid-template-columns:1fr 1fr;gap:48px}
}

/* Mobile */
@media (max-width:768px){
  :root{--gut:20px;--gnb-h:62px}
  body{font-size:15px;line-height:1.78;padding-bottom:80px}
  .gnb__toggle{display:block}
  .gnb__right .pill{display:none}
  .gnb__left{width:100%;justify-content:space-between}
  .gnb__nav{position:absolute;top:var(--gnb-h);left:0;right:0;background:#fff;box-shadow:0 18px 30px rgba(12,21,38,.1);flex-direction:column;gap:0;padding:6px var(--gut) 16px;display:none}
  .gnb.open .gnb__nav{display:flex}
  .gnb__nav a{padding:15px 4px;border-radius:0;border-bottom:1px solid var(--line);font-size:16px}
  .gnb__nav a:last-child{border-bottom:0}
  .gnb__in{padding-right:var(--gut)}
  .gnb__right{position:absolute;right:var(--gut);top:10px}
  .hero__bg{height:360px}
  .hero__wrap{padding-top:30px;padding-bottom:40px}
  .hero__txt{grid-template-columns:1fr;gap:16px}
  .chip{font-size:12.5px;margin-bottom:22px}
  .hero h1{font-size:clamp(34px,10vw,42px)}
  .lead{font-size:15px;margin-bottom:20px}
  .hero__cta .pill{flex:1 1 140px}
  .strip{padding:48px 0 8px}
  .strip__grid{grid-template-columns:1fr;gap:18px;padding:0 12px}
  .strip__item img{aspect-ratio:4/3.2;border-radius:22px}
  .strip__item figcaption{padding:0 8px}
  .row{padding:36px 0}
  .row__grid,.row--rev .row__grid{grid-template-columns:1fr;gap:24px;padding:0 12px}
  .row--rev .row__img{order:0}
  .row__img{aspect-ratio:4/3.6;border-radius:22px}
  .row__txt{gap:16px;padding:0 8px}
  .photoband{margin-top:28px}
  .photoband figure img{height:300px}
  .deep{padding:64px 0 70px}
  .deep h2{margin-bottom:26px}
  .deep__grid{grid-template-columns:1fr;gap:34px}
  .deep__img{aspect-ratio:4/3.4;border-radius:22px}
  .steps li{font-size:16.5px;padding:16px 0;gap:14px}
  .tablesec{padding:64px 0 40px}
  table{font-size:14px}
  th,td{padding:14px 12px}
  tbody th{width:27%}
  .tablewrap{margin-left:-8px;margin-right:-8px}
  .duo{padding:16px 0 60px}
  .duo__grid{grid-template-columns:1fr;gap:14px;padding:0 12px}
  .duo img{border-radius:22px}
  .faqsec{padding:64px 0}
  .faq__item summary{padding:18px 18px;gap:10px}
  .faq__ans{padding:0 18px 20px}
  .faq__item h3{font-size:16px}
  .more{padding:64px 0 56px}
  .cards{grid-template-columns:repeat(2,1fr);gap:16px 12px}
  .card__img{border-radius:20px}
  .card__body strong{font-size:16px}.card__body em{font-size:13px}
  .banner{margin-top:30px;border-radius:24px}
  .banner img{height:280px}
  .banner__txt{padding:0 26px}
  .cta{padding:72px 0 56px}
  .cta__sub{margin:0 auto 30px;font-size:clamp(12.5px,1.4vw,16px);white-space:nowrap;color:var(--text)}
  .updated{margin-top:36px}
  .foot{padding:48px 0 calc(96px + env(safe-area-inset-bottom))}
  .foot__row{flex-direction:column;gap:14px}
  .foot address{justify-content:flex-start;text-align:left;gap:2px 18px}
  .formframe iframe{min-height:640px}
  .floatmain{right:14px;bottom:88px;padding:10px 18px;font-size:13px}
  .mbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:45;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
}

/* ===== Responsive tuning: fluid type/space, edge-to-edge width, balanced columns and line breaks ===== */
:root{--gut:clamp(20px,4.4vw,64px);--max:1440px}
.wrap{max-width:var(--max);padding-left:var(--gut);padding-right:var(--gut)}
.narrow{max-width:1100px}
body{font-size:clamp(15px,calc(14px + .18vw),17px)}
h1,h2,h3,.lead,.cta__big,.cta__sub,.banner__txt strong,.card__body strong,.card__body em,.h-ko,.strip__item figcaption{text-wrap:balance}
p,li,.row__body,.faq__ans span{text-wrap:pretty}
h2 .h-en{font-size:clamp(30px,3.9vw,56px)}
h2 .h-ko{font-size:clamp(14px,1.15vw,16.5px)}
.hero__bg{height:min(540px,60vh)}
.hero__wrap{padding-top:clamp(28px,4vw,56px);padding-bottom:clamp(36px,5vw,68px)}
.hero h1{font-size:clamp(34px,5.2vw,72px)}
.lead{max-width:none;font-size:clamp(15px,1.25vw,18px)}
.strip{padding-top:clamp(48px,6vw,96px)}
.strip__grid{gap:clamp(12px,1.6vw,24px)}
.row{padding:clamp(32px,4.5vw,72px) 0}
.deep{padding:clamp(64px,8vw,120px) 0}
.tablesec{padding:clamp(64px,8vw,110px) 0 clamp(40px,5vw,70px)}
.duo{padding-bottom:clamp(56px,7vw,100px)}
.faqsec{padding:clamp(64px,8vw,110px) 0}
.more{padding:clamp(64px,8vw,110px) 0 clamp(56px,7vw,100px)}
.cta{padding:clamp(72px,9vw,110px) 0 clamp(56px,6vw,80px)}
.cards{gap:clamp(12px,1.8vw,24px)}
.duo__grid{gap:clamp(12px,1.6vw,24px)}
.foot__in{padding-left:var(--gut);padding-right:var(--gut)}
.gnb__in{padding-left:var(--gut);padding-right:var(--gut)}
@media (min-width:769px){
  .hero__txt{grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);max-width:none}
  .row__grid,.row--rev .row__grid{grid-template-columns:1fr 1fr;gap:clamp(28px,5.5vw,96px);align-items:stretch}
  .row__img{aspect-ratio:1/.9}
  .row__txt h2,.row__body{max-width:none}
  .deep__grid{grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px)}
  .deep h2{max-width:none}
}
@media (min-width:769px) and (max-width:1024px){
  .gnb__left{gap:16px}
  .gnb__nav a{padding:8px 9px;font-size:13.5px}
  .hero__bg{height:min(460px,50vh)}
  .row__img{aspect-ratio:1/1}
  .steps li{font-size:17px}
}
@media (max-width:768px){
  .hero__bg{height:clamp(300px,82vw,400px)}
  .hero__txt{grid-template-columns:1fr;gap:14px}
  .hero h1{font-size:clamp(34px,10vw,44px)}
  .lead{font-size:15px}
  .strip__grid{padding:0;gap:16px}
  .strip__item img{border-radius:0;aspect-ratio:4/3.1}
  .strip__item figcaption{padding:0 var(--gut)}
  .row__grid,.row--rev .row__grid{padding:0;gap:22px}
  .row__img{border-radius:0;aspect-ratio:4/3.3}
  .row__txt{padding:0 var(--gut)}
  .photoband figure img{height:clamp(240px,68vw,340px)}
  .duo__grid{padding:0;gap:12px}
  .duo img{border-radius:0;aspect-ratio:4/3}
  .deep__img{border-radius:22px}
  .banner{border-radius:0;margin-left:calc(var(--gut)*-1);margin-right:calc(var(--gut)*-1)}
  .tablewrap{margin-left:calc(var(--gut)*-1 + 8px);margin-right:calc(var(--gut)*-1 + 8px)}
  .cta__big{font-size:clamp(18px,5vw,22px)}
}
@media (max-width:360px){.cards{gap:14px 10px}.card__body strong{font-size:15px}.pill--lg{padding:0 20px}}

/* Buttons keep their own color and no underline, wherever they sit */
a.pill{text-decoration:none}
a.pill--dark{color:#fff}
a.pill--light{color:var(--ink)}

/* Bulleted body copy */
.row__intro{font-weight:700;color:var(--ink);font-size:1.06em;line-height:1.65;margin:0 0 14px}
.row__body .ticks{margin-top:0;gap:11px}
.row__body .ticks li{line-height:1.7}

/* Equal, non-overflowing columns; alternate image side on feature rows */
.row__grid>*,.deep__grid>*,.hero__txt>*,.duo__grid>*,.strip__grid>*,.cards>*{min-width:0}
@media (min-width:769px){
  .row__grid,.row--rev .row__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .row--rev .row__img{order:2}
  .deep__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero__txt{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.strip__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.duo__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:768px){.duo__grid,.row__grid,.row--rev .row__grid,.deep__grid,.hero__txt,.strip__grid{grid-template-columns:minmax(0,1fr)}.row--rev .row__img{order:0}}
.row__img,.deep__img{width:100%;align-self:start}
.deep__grid{align-items:center}
@media (min-width:769px){
  .row__img{aspect-ratio:auto;align-self:stretch;min-height:clamp(320px,34vw,560px)}
}

/* Products */
.products{background:var(--champ2);padding:clamp(64px,8vw,110px) 0}
.products__lead{margin:18px 0 0;max-width:720px;color:var(--text)}
.products__grid{display:grid;gap:clamp(14px,2vw,28px);margin-top:clamp(28px,4vw,48px);grid-template-columns:repeat(3,minmax(0,1fr))}
.products__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pcard{background:#fff;border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.pcard__img{position:relative;aspect-ratio:4/3.2;overflow:hidden}
.pcard__img img{width:100%;height:100%;object-fit:cover}
.pcard__badge{position:absolute;left:16px;top:16px;background:#fff;color:var(--ink);font-size:12.5px;font-weight:800;padding:5px 13px;border-radius:1000px}
.pcard__body{padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:16px;flex:1}
.pcard__body h3{font-size:clamp(19px,1.7vw,24px);font-weight:900;letter-spacing:-.03em}
.pcard__body .ticks{margin:0;gap:9px;flex:1}
.pcard__body .pill{align-self:flex-start}
@media (max-width:1024px){.products__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.products__grid--3 .pcard:last-child{grid-column:1/-1}.products__grid--3 .pcard:last-child .pcard__img{aspect-ratio:16/8}}
@media (max-width:768px){.products__grid,.products__grid--2{grid-template-columns:minmax(0,1fr)}.products__grid--3 .pcard:last-child{grid-column:auto}.products__grid--3 .pcard:last-child .pcard__img{aspect-ratio:4/3.2}}
.products__lead{text-wrap:balance}
.pcard__body .ticks{flex:0 0 auto}
.pcard__body .pill{margin-top:auto}

.pcard__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.pcard__body .pill{margin-top:0;align-self:auto}

/* Header: logo and one action only (no navigation) */
.gnb__in{justify-content:space-between}
.gnb .pill{min-height:42px;padding:0 22px;font-size:14.5px;display:inline-flex}
@media (max-width:768px){.gnb .pill{display:inline-flex;min-height:38px;padding:0 18px;font-size:14px}.gnb__in{padding-right:var(--gut)}}

/* Hero text: softer than black */
.hero h1{color:#2f4570;font-weight:800;letter-spacing:-.045em}
.hero h1::before{content:"";display:block;width:56px;height:3px;border-radius:3px;background:var(--bronze);margin-bottom:22px}
.hero .lead{color:#665a48;font-weight:500}

/* Mobile footer: one left edge, one item per line */
@media (max-width:768px){
  .foot__row,.foot__row--b{flex-direction:column;align-items:flex-start;gap:12px}
  .foot__row--b{margin-top:22px;padding-top:20px}
  .foot address{flex-direction:column;align-items:flex-start;gap:3px;text-align:left}
  .foot__copy{text-align:left}
  .updated{text-align:center}
}

/* ===== Line-break balance: short copy balanced, long copy flush on both sides ===== */
body{word-break:keep-all;overflow-wrap:break-word;line-break:strict}
h1,h2,h2 span,h3,h3 span,.lead,.row__intro,.row__body li,.pcard li,.ticks li,figcaption,.products__lead,.cta__big,.cta__sub,.banner__txt strong,.card__body strong,td,th,.steps li span,.faq__t{text-wrap:balance}
.row__body p:not(.row__intro),.faq__ans span:last-child{text-align:justify;text-justify:inter-word;text-wrap:pretty}
.products__lead{text-align:left;text-wrap:balance}
.row__body li,.pcard li,.faq__t,.steps li span{text-align:left}
.hero .lead{text-wrap:balance}
@media (max-width:768px){
  /* mobile hero: centered, symmetric */
  .hero__txt{text-align:center;justify-items:center}
  .hero h1::before{margin-left:auto;margin-right:auto}
  .hero .lead{max-width:34em;margin-left:auto;margin-right:auto}
  .hero__cta{justify-content:center;width:100%}
  .hero__cta .pill{flex:1 1 0;max-width:200px}
  .row__body p:not(.row__intro),.faq__ans span:last-child{text-align:left}
  .row__body p,.faq__ans span:last-child,.products__lead{text-wrap:balance}
}

/* Mobile: table rows become stacked cards so every line spans the full width */
@media (max-width:640px){
  .tablewrap{background:transparent;border-radius:0;margin-left:0;margin-right:0}
  table,tbody,tr,th,td{display:block;width:auto}
  thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  tbody tr{background:var(--champ2);border-radius:var(--r-md);padding:16px 18px;margin-bottom:12px}
  tbody tr:last-child{margin-bottom:0}
  tbody th{padding:0 0 8px;border:0;width:auto;font-size:1.05em}
  tbody td{padding:3px 0;border:0;line-height:1.65}
  tbody td::before{content:attr(data-label);display:inline-block;min-width:3.2em;margin-right:10px;color:var(--bronze);font-weight:800;font-size:.86em}
  td,th{text-wrap:pretty}
}
@media (max-width:768px){
  .row__body p:not(.row__intro),.faq__ans span:last-child{text-wrap:balance}
}

/* FAQ answers: conclusion sentence + remainder, each balanced on its own */
.faq__body{display:block;flex:1;min-width:0}
.faq__body>span{display:block;text-wrap:balance;text-align:left}
.faq__lead{font-weight:700;color:var(--ink)}
.faq__rest{margin-top:8px}

/* Final: no justify (it leaves short last lines). Every text block is line-balanced and left-aligned. */
.row__body p,.row__body li,.pcard li,.ticks li,.faq__body>span,.steps li span,.products__lead,.row__intro,.lead,figcaption,td,th,.tablesec p,.cta__sub{text-align:left;text-wrap:balance}
@media (max-width:768px){.hero .lead{text-align:center}}

/* One sentence per block, each balanced */
.sn{display:block;text-wrap:balance}
.sn+.sn{margin-top:.4em}

/* ===== Left-right balance: body copy fills the column edge to edge (no balance-shrinking) ===== */
.row__body p,.row__body li,.row__intro,.pcard li,.faq__body>span,.products__lead .sn,.tablesec p .sn,.sn{
  text-align:justify;text-justify:inter-character;text-wrap:pretty;word-break:keep-all;hyphens:none}
.row__body li,.pcard li{text-align:justify}
.hero .lead .sn{text-align:center;text-wrap:balance}
/* word-gap justify only (never spread letters) */
.row__body p,.row__body li,.row__intro,.pcard li,.faq__body>span,.products__lead .sn,.tablesec p .sn,.sn{text-justify:inter-word}
.hero .lead .sn{text-align:center}

/* Specificity fix: nothing may re-apply balance-shrinking to justified body copy */
.faq__ans .faq__body>span,.faq__ans .faq__body,.row__body p .sn,.row__body li,.pcard li{text-wrap:pretty;text-align:justify;text-justify:inter-word}
@media (max-width:768px){
  .row__body p:not(.row__intro),.faq__ans span:last-child,.faq__ans .faq__body>span{text-wrap:pretty}
  .faq__ans .faq__body>span,.row__body p:not(.row__intro) .sn{text-align:justify}
}

/* Short label bullets stay left-aligned (justify would open wide gaps) */
.row__body .ticks--label li{text-align:left;text-wrap:pretty}

/* Hero text alignment: PC/tablet = left (shares one left edge with the buttons), mobile = centered */
.hero .lead,.hero .lead .sn{text-align:left}
.hero__txt{text-align:left}
@media (max-width:768px){
  .hero .lead,.hero .lead .sn{text-align:center}
  .hero__txt{text-align:center}
}
