:root{
  --ink:#102024;
  --soft:#50666a;
  --paper:#f4f1e9;
  --card:#ffffff;
  --line:rgba(16,32,36,.13);
  --teal:#0e6f68;
  --teal-dark:#084c48;
  --lime:#cedb72;
  --shadow:0 24px 70px rgba(16,32,36,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.skip-link{position:fixed;left:16px;top:-80px;z-index:99;padding:10px 14px;border-radius:10px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.skip-link:focus{top:16px}
.container{width:min(1160px,calc(100% - 40px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:rgba(244,241,233,.92);backdrop-filter:blur(18px)}
.header-inner{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;line-height:1}
.brand-logo{display:block;width:auto;height:82px;object-fit:contain}
.header-actions{display:flex;align-items:center;gap:12px}
.text-link{font-size:.92rem;font-weight:760;color:var(--soft)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;border-radius:999px;background:var(--teal);color:#fff;font-weight:820;box-shadow:0 12px 30px rgba(14,111,104,.18);transition:.2s}
.button:hover{background:var(--teal-dark);transform:translateY(-1px)}
.button--light{background:#fff;color:var(--teal);box-shadow:none}
.button--light:hover{background:var(--lime);color:var(--ink)}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;padding-top:28px;color:var(--soft);font-size:.88rem}
.breadcrumb a{text-decoration:underline;text-decoration-color:rgba(14,111,104,.35);text-underline-offset:4px}
.hero{padding:26px 0 44px}
.hero-grid{display:block}
.hero-copy{max-width:900px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;color:var(--teal);font-size:.77rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.eyebrow:before{content:"";width:34px;height:2px;background:var(--lime)}
h1,h2,h3{margin-top:0;line-height:1.08;letter-spacing:-.035em}
h1{max-width:760px;margin-bottom:24px;font-size:clamp(2.6rem,6vw,5.25rem)}
h2{margin-bottom:18px;font-size:clamp(2rem,4vw,3.35rem)}
h3{margin-bottom:12px;font-size:1.22rem}
.lead{max-width:700px;margin:0;color:var(--soft);font-size:clamp(1.05rem,2vw,1.28rem)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px;padding:0;list-style:none}
.hero-facts li{padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.54);font-size:.84rem;font-weight:750}
.service-visual-section{position:relative;padding:0 0 72px}
.service-visual-section:after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;z-index:-1;background:#fff}
.service-visual{position:relative;min-height:310px;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:28px;background:#071719;box-shadow:0 24px 64px rgba(6,23,25,.22);isolation:isolate}
.service-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.service-visual:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,20,22,.98) 0%,rgba(5,20,22,.91) 34%,rgba(5,20,22,.58) 62%,rgba(5,20,22,.13) 100%),linear-gradient(180deg,rgba(5,20,22,.04) 35%,rgba(5,20,22,.66) 100%)}
.service-visual:after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 78% 30%,rgba(206,219,114,.13),transparent 28%)}
.media-label{position:absolute;left:36px;right:36px;bottom:32px;z-index:2;max-width:610px;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.28)}
.media-label span{display:block;margin-bottom:5px;color:var(--lime);font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.media-label strong{font-size:1.28rem}
.section{padding:96px 0}
.section--white{background:#fff}
.section--teal{background:var(--teal-dark);color:#fff}
.section-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(280px,.65fr);gap:50px;align-items:end;margin-bottom:42px}
.section-head p{margin:0;color:var(--soft);font-size:1.05rem}
.section--teal .section-head p{color:rgba(255,255,255,.74)}
.audience-grid,.use-grid,.process-grid,.related-grid{display:grid;gap:16px}
.audience-grid{grid-template-columns:repeat(4,1fr)}
.audience-card,.use-card,.process-card,.related-card{border:1px solid var(--line);border-radius:22px;background:var(--card)}
.audience-card{padding:25px}
.audience-card b{display:block;margin-bottom:8px;font-size:1.03rem}
.audience-card span{color:var(--soft);font-size:.92rem}
.use-grid{grid-template-columns:repeat(3,1fr)}
.use-card{padding:28px;box-shadow:0 12px 35px rgba(16,32,36,.055)}
.use-card p,.process-card p{margin:0;color:var(--soft)}
.process-grid{grid-template-columns:repeat(3,1fr)}
.process-card{position:relative;padding:30px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.055)}
.process-card b{display:block;margin-bottom:18px;color:var(--lime);font-size:.76rem;letter-spacing:.1em}
.process-card p{color:rgba(255,255,255,.72)}
.benefit-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(340px,.85fr);gap:70px;align-items:start}
.check-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.check-list li{position:relative;padding:17px 18px 17px 52px;border:1px solid var(--line);border-radius:16px;background:#fff;font-weight:720}
.check-list li:before{content:"✓";position:absolute;left:18px;top:15px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--lime);color:var(--teal-dark);font-weight:950}
.notice{margin-top:30px;padding:20px 22px;border-left:4px solid var(--lime);border-radius:0 16px 16px 0;background:rgba(206,219,114,.16);color:var(--soft);font-size:.9rem}
.faq{display:grid;gap:12px;max-width:900px}
.faq details{border:1px solid var(--line);border-radius:16px;background:#fff;padding:0 20px}
.faq summary{cursor:pointer;padding:19px 34px 19px 0;font-weight:830;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq details p{margin:0;padding:0 0 20px;color:var(--soft)}
.related-grid{grid-template-columns:repeat(3,1fr)}
.related-card{display:flex;flex-direction:column;min-height:210px;padding:25px;transition:.2s}
.related-card:hover{transform:translateY(-3px);border-color:rgba(14,111,104,.45);box-shadow:var(--shadow)}
.related-card p{margin:0 0 24px;color:var(--soft);font-size:.92rem}
.related-card span{margin-top:auto;color:var(--teal);font-weight:850}
.cta{padding:0 0 96px}
.cta-panel{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;padding:48px;border-radius:28px;background:linear-gradient(135deg,var(--teal),var(--teal-dark));color:#fff;box-shadow:var(--shadow)}
.cta-panel h2{margin-bottom:12px;font-size:clamp(2rem,4vw,3.2rem)}
.cta-panel p{max-width:650px;margin:0;color:rgba(255,255,255,.76)}
.site-footer{padding:34px 0;border-top:1px solid var(--line);color:var(--soft);font-size:.88rem}
.footer-inner{display:flex;justify-content:space-between;gap:24px;align-items:center}
.footer-links{display:flex;flex-wrap:wrap;gap:16px}
.footer-links a:hover,.footer-legal-button:hover{color:var(--teal)}
.footer-legal-button{margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.back-to-top{position:fixed;right:clamp(16px,2.2vw,30px);bottom:clamp(16px,2.2vw,30px);z-index:90;display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:var(--teal);color:#fff;box-shadow:0 14px 34px rgba(8,32,34,.25);cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.back-to-top:hover{background:var(--teal-dark);transform:translateY(-3px);box-shadow:0 18px 38px rgba(8,32,34,.32)}
.back-to-top:focus-visible,.legal-frame-close:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.back-to-top svg,.legal-frame-close svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.legal-frame-open{overflow:hidden}
.legal-frame-modal[hidden]{display:none}
.legal-frame-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:rgba(4,14,16,.78);backdrop-filter:blur(10px)}
.legal-frame-dialog{position:relative;width:min(1160px,100%);max-height:calc(100dvh - 36px);overflow:auto;border:1px solid rgba(255,255,255,.18);border-radius:26px;background:var(--paper);box-shadow:0 30px 90px rgba(0,0,0,.34)}
.legal-frame-content{min-height:100%;padding:40px}
.legal-frame-content .en{display:none!important}
.legal-frame-content .legal-dialog{width:100%;margin:0;padding:0}
.legal-frame-content .legal-close{display:none}
.legal-frame-content .legal-intro{max-width:820px;margin:0;color:var(--soft);font-size:1.03rem}
.legal-frame-content .legal-grid,.legal-frame-content .terms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:24px}
.legal-frame-content .legal-card,.legal-frame-content .terms-section{min-width:0;padding:25px;border:1px solid var(--line);border-radius:20px;background:#fff}
.legal-frame-content .legal-card.full,.legal-frame-content .legal-card--trade,.legal-frame-content .terms-section--full{grid-column:1/-1}
.legal-frame-content .legal-card h3,.legal-frame-content .terms-section h3{margin:0 0 12px;font-size:1.18rem;letter-spacing:-.02em}
.legal-frame-content .legal-card p,.legal-frame-content .terms-section p{margin:0;color:var(--soft);line-height:1.72}
.legal-frame-content .legal-card p+p,.legal-frame-content .terms-section p+p{margin-top:10px}
.legal-frame-content .legal-list{display:grid;grid-template-columns:minmax(155px,.75fr) minmax(0,1.25fr);gap:9px 20px;margin:0}
.legal-frame-content .legal-list dt{font-weight:800;color:var(--ink)}
.legal-frame-content .legal-list dd{min-width:0;margin:0;color:var(--soft);overflow-wrap:anywhere}
.legal-frame-content a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.legal-frame-content .terms-header,.legal-frame-content .privacy-header{position:relative;overflow:hidden;padding:32px;border-radius:23px;background:linear-gradient(135deg,var(--teal-dark),#102024 78%);color:#fff}
.legal-frame-content .terms-header:before,.legal-frame-content .privacy-header:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 12%,rgba(206,219,114,.62),transparent 25%)}
.legal-frame-content .terms-header>*,.legal-frame-content .privacy-header>*{position:relative;z-index:1}
.legal-frame-content .terms-header h2,.legal-frame-content .privacy-header h2{margin:12px 0;font-size:clamp(2.15rem,5vw,4rem)}
.legal-frame-content .terms-header p,.legal-frame-content .privacy-header p{color:rgba(255,255,255,.8)}
.legal-frame-content .terms-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.legal-frame-content .terms-meta span{padding:7px 11px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(5,20,22,.34);font-size:.78rem;font-weight:800}
.legal-frame-content .terms-warning,.legal-frame-content .terms-note{margin:20px 0 0;padding:24px;border:1px solid rgba(14,111,104,.2);border-radius:19px;background:rgba(206,219,114,.15)}
.legal-frame-content .terms-warning b{display:block;margin-bottom:8px;color:var(--teal-dark);font-size:1.12rem}
.legal-frame-content .terms-list{display:grid;gap:8px;margin:12px 0 0;padding-left:20px;color:var(--soft)}
.legal-frame-content .terms-form{margin-top:16px;padding:18px;border:1px dashed rgba(14,111,104,.4);border-radius:15px;background:var(--paper);color:var(--soft)}
.legal-frame-close{position:absolute;top:18px;right:18px;z-index:3;display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(16,32,36,.16);border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 10px 28px rgba(16,32,36,.18);cursor:pointer}
@media (max-width:980px){
  .header-inner{min-height:86px}
  .brand-logo{height:72px}
  .hero-copy{max-width:800px}
  .service-visual{min-height:285px}
  .service-visual img{object-position:66% center}
  .service-visual:before{background:linear-gradient(90deg,rgba(5,20,22,.96) 0%,rgba(5,20,22,.84) 48%,rgba(5,20,22,.34) 100%),linear-gradient(180deg,transparent 24%,rgba(5,20,22,.62) 100%)}
  .audience-grid{grid-template-columns:repeat(2,1fr)}
  .use-grid,.related-grid{grid-template-columns:repeat(2,1fr)}
  .benefit-grid{grid-template-columns:1fr;gap:38px}
}
@media (max-width:700px){
  .container{width:min(100% - 28px,1160px)}
  .header-inner{min-height:76px}
  .brand-logo{height:64px}
  .header-actions .text-link{display:none}
  .button{min-height:43px;padding-inline:16px;font-size:.9rem}
  .breadcrumb{padding-top:20px}
  .hero{padding:18px 0 34px}
  h1{font-size:clamp(2.45rem,13vw,4rem)}
  .service-visual-section{padding-bottom:54px}
  .service-visual{min-height:330px;border-radius:22px}
  .service-visual img{object-position:66% center}
  .service-visual:before{background:linear-gradient(180deg,rgba(5,20,22,.30) 0%,rgba(5,20,22,.66) 45%,rgba(5,20,22,.97) 100%)}
  .media-label{left:21px;right:21px;bottom:22px}
  .media-label strong{font-size:1.12rem}
  .section{padding:72px 0}
  .section-head{grid-template-columns:1fr;gap:12px;margin-bottom:30px}
  .audience-grid,.use-grid,.process-grid,.related-grid{grid-template-columns:1fr}
  .audience-card,.use-card,.process-card{padding:23px}
  .cta{padding-bottom:70px}
  .cta-panel{grid-template-columns:1fr;padding:32px 24px}
  .footer-inner{align-items:flex-start;flex-direction:column}
  .back-to-top{right:15px;bottom:15px;width:48px;height:48px}
  .legal-frame-modal{padding:0}
  .legal-frame-dialog{width:100%;height:100dvh;max-height:none;border:0;border-radius:0}
  .legal-frame-content{padding:66px 15px 24px}
  .legal-frame-content .legal-grid,.legal-frame-content .terms-grid{grid-template-columns:1fr}
  .legal-frame-content .legal-card.full,.legal-frame-content .legal-card--trade,.legal-frame-content .terms-section--full{grid-column:auto}
  .legal-frame-content .legal-card,.legal-frame-content .terms-section{padding:21px 18px}
  .legal-frame-content .legal-list{grid-template-columns:1fr;gap:3px}
  .legal-frame-content .legal-list dd{margin-bottom:10px}
  .legal-frame-content .terms-header,.legal-frame-content .privacy-header{padding:27px 21px;border-radius:19px}
  .legal-frame-close{top:12px;right:12px;width:44px;height:44px}
}
@media (max-width:390px){.brand-logo{height:58px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.related-card,.back-to-top{transition:none}}
