/* ========================================
   Portal Build LP - Stylesheet
   株式会社OPTUS
   ======================================== */

/* ----------------------------------------
   0. CSS Variables
   ---------------------------------------- */
:root {
  --color-primary: #2563eb;
  --color-primary-dark: #1d4ed8;
  --color-primary-light: #eff6ff;
  --color-accent: #f97316;
  --color-accent-dark: #ea580c;
  --color-dark: #111827;
  --color-text: #1f2937;
  --color-text-sub: #4b5563;
  --color-text-muted: #9ca3af;
  --color-border: #e5e7eb;
  --color-bg: #ffffff;
  --color-bg-sub: #f9fafb;
  --color-white: #ffffff;
  --color-green: #16a34a;

  --ff: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
  --fs-xs: .75rem;
  --fs-sm: .875rem;
  --fs-base: 1rem;
  --fs-md: 1.125rem;
  --fs-lg: 1.25rem;
  --fs-xl: 1.5rem;
  --fs-2xl: 2rem;
  --fs-3xl: 2.5rem;
  --fs-4xl: 3.25rem;

  --mw: 1140px;
  --mw-sm: 860px;
  --hh: 68px;
  --radius: 12px;
  --radius-lg: 20px;
  --radius-full: 9999px;
  --shadow: 0 1px 3px rgba(0,0,0,.06);
  --shadow-md: 0 4px 20px rgba(0,0,0,.07);
  --shadow-lg: 0 12px 40px rgba(0,0,0,.1);
}

/* ----------------------------------------
   1. Reset
   ---------------------------------------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:var(--hh)}
body{font-family:var(--ff);font-size:var(--fs-base);line-height:1.8;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none}
.u-pc-only{display:inline}
.u-sp-only{display:none}
@media(max-width:768px){.u-pc-only{display:none}.u-sp-only{display:inline}}

[data-scroll]{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
[data-scroll].is-visible{opacity:1;transform:none}

/* ----------------------------------------
   2. Section Header
   ---------------------------------------- */
.section-header{text-align:center;margin-bottom:3.5rem}
.section-header__label{display:inline-block;font-size:var(--fs-xs);font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.18em;margin-bottom:.5rem}
.section-header__title{font-size:var(--fs-3xl);font-weight:800;color:var(--color-dark);line-height:1.35;margin-bottom:.5rem}
.section-header__subtitle{font-size:var(--fs-md);color:var(--color-text-sub)}
.section-header--light .section-header__label{color:rgba(255,255,255,.7)}
.section-header--light .section-header__title{color:#fff}
.section-header--light .section-header__subtitle{color:rgba(255,255,255,.65)}
@media(max-width:768px){.section-header__title{font-size:var(--fs-2xl)}}

/* ----------------------------------------
   3. Buttons
   ---------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-weight:700;border-radius:var(--radius);transition:all .25s;line-height:1.4;white-space:nowrap}
.btn__icon{font-size:1.15em}
.btn--primary{background:var(--color-accent);color:#fff;border:2px solid var(--color-accent)}
.btn--primary:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);transform:translateY(-2px);box-shadow:0 8px 24px rgba(249,115,22,.3)}
.btn--outline{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}
.btn--outline:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}
.btn--white{background:#fff;color:var(--color-primary);border:2px solid #fff}
.btn--white:hover{background:transparent;color:#fff;transform:translateY(-2px)}
.btn--outline-white{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5)}
.btn--outline-white:hover{background:#fff;color:var(--color-dark);transform:translateY(-2px)}
.btn--lg{padding:14px 32px;font-size:var(--fs-md)}
.btn--xl{padding:18px 40px;font-size:var(--fs-lg)}
@media(max-width:768px){
  .btn--lg{padding:12px 24px;font-size:var(--fs-base)}
  .btn--xl{padding:14px 32px;font-size:var(--fs-md);white-space:normal}
}

/* ----------------------------------------
   4. Header
   ---------------------------------------- */
.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:all .3s;height:var(--hh)}
.header.is-scrolled{border-bottom-color:var(--color-border);box-shadow:var(--shadow)}
.header__inner{max-width:var(--mw);margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:100%}
.header__logo{font-weight:800;font-size:var(--fs-xl);color:var(--color-dark);letter-spacing:.03em}
.header__nav{display:flex;align-items:center;gap:1.25rem}
.header__nav-list{display:flex;gap:1.25rem}
.header__nav-link{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-sub);padding:4px 0;position:relative}
.header__nav-link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--color-primary);transition:width .3s}
.header__nav-link:hover{color:var(--color-primary)}
.header__nav-link:hover::after{width:100%}
.header__cta-btn{padding:8px 20px;background:var(--color-accent);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-sm);font-weight:700;transition:all .25s}
.header__cta-btn:hover{background:var(--color-accent-dark);transform:translateY(-1px)}
.header__menu-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px}
.header__menu-btn span{display:block;width:22px;height:2px;background:var(--color-dark);transition:all .3s}
.header__menu-btn.is-active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.header__menu-btn.is-active span:nth-child(2){opacity:0}
.header__menu-btn.is-active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
@media(max-width:1024px){.header__nav-list{display:none}}
@media(max-width:768px){
  .header__menu-btn{display:flex}
  .header__nav{display:none;position:fixed;top:var(--hh);left:0;right:0;bottom:0;background:#fff;flex-direction:column;padding:1.5rem;gap:1rem;overflow-y:auto}
  .header__nav.is-open{display:flex}
  .header__nav-list{display:flex;flex-direction:column;gap:0;width:100%}
  .header__nav-link{display:block;padding:.75rem 0;font-size:var(--fs-base);border-bottom:1px solid var(--color-border)}
  .header__cta-btn{width:100%;text-align:center;padding:14px;font-size:var(--fs-base);margin-top:.5rem}
}

/* ----------------------------------------
   5. Hero
   ---------------------------------------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:var(--hh);background:#fff;overflow:hidden}
.hero__bg-overlay{position:absolute;inset:0;background:linear-gradient(160deg,var(--color-primary-light) 0%,#fff 50%,#fef3e2 100%);pointer-events:none}
.hero__inner{max-width:var(--mw);margin:0 auto;padding:4rem 1.5rem;display:grid;grid-template-columns:.85fr 1.15fr;gap:3rem;align-items:center;position:relative;z-index:1}
.hero__label{display:inline-block;font-size:var(--fs-sm);font-weight:700;color:var(--color-primary);background:#fff;padding:5px 16px;border-radius:var(--radius-full);margin-bottom:1rem;border:1px solid var(--color-border);box-shadow:var(--shadow)}
.hero__title{font-size:clamp(2rem,4.5vw,3.25rem);font-weight:900;color:var(--color-dark);line-height:1.35;margin-bottom:1rem}
.hero__title-accent{color:var(--color-accent)}
.hero__subtitle{font-size:clamp(1.05rem,2vw,1.4rem);font-weight:700;color:var(--color-text-sub);margin-bottom:1rem;line-height:1.6}
.hero__description{font-size:var(--fs-base);color:var(--color-text-sub);margin-bottom:2rem;line-height:1.9}
.hero__cta{display:flex;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}
.hero__note{font-size:var(--fs-sm);color:var(--color-text-muted)}
.hero__image{position:relative;margin-right:-2rem}
.hero__image-frame{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;border:1px solid var(--color-border)}
.hero__image-frame img{width:100%;height:auto}
.hero__image-badge{position:absolute;bottom:-14px;right:-14px;background:var(--color-primary);color:#fff;padding:10px 18px;border-radius:var(--radius);box-shadow:var(--shadow-md);text-align:center}
.hero__image-badge-num{display:block;font-size:var(--fs-xs);font-weight:500}
.hero__image-badge-label{display:block;font-size:var(--fs-lg);font-weight:900}
.hero__scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--color-text-muted);font-size:var(--fs-xs);letter-spacing:.1em}
.hero__scroll-line{width:1px;height:36px;background:var(--color-text-muted);animation:scroll-line 2s ease infinite}
@keyframes scroll-line{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.01%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:1024px){
  .hero__inner{grid-template-columns:1fr;gap:2.5rem;text-align:center}
  .hero__image{margin-right:0}
  .hero__cta{justify-content:center}
  .hero__image-badge{bottom:-10px;right:10px}
}
@media(max-width:768px){
  .hero{min-height:auto;padding-top:calc(var(--hh) + 1rem);padding-bottom:3rem}
  .hero__inner{padding:2rem 1rem}
  .hero__cta{flex-direction:column;align-items:center}
  .hero__cta .btn{width:100%;max-width:320px}
  .hero__scroll{display:none}
}

/* ----------------------------------------
   6. Target
   ---------------------------------------- */
.target{background:var(--color-primary);padding:1.25rem 1.5rem}
.target__inner{max-width:var(--mw);margin:0 auto;text-align:center}
.target__lead{font-size:var(--fs-sm);color:rgba(255,255,255,.8);margin-bottom:.6rem;font-weight:500}
.target__list{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}
.target__item{background:rgba(255,255,255,.15);color:#fff;padding:7px 20px;border-radius:var(--radius-full);font-size:var(--fs-sm);font-weight:600;border:1px solid rgba(255,255,255,.25)}

/* ----------------------------------------
   7. Problem
   ---------------------------------------- */
.problem{padding:5rem 1.5rem;background:var(--color-bg-sub)}
.problem__inner{max-width:var(--mw);margin:0 auto}
.problem__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2.5rem}
.problem__card{background:#fff;border-radius:var(--radius-lg);padding:2rem 1.5rem;text-align:center;box-shadow:var(--shadow-md);transition:transform .25s,box-shadow .25s}
.problem__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.problem__card-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:0 auto 1rem;background:#fef2f2;border-radius:var(--radius-full);color:#dc2626}
.problem__card-title{font-size:var(--fs-lg);font-weight:800;color:var(--color-dark);margin-bottom:.5rem}
.problem__card-text{font-size:var(--fs-sm);color:var(--color-text-sub);line-height:1.8}
.problem__bottom-text{text-align:center;font-size:var(--fs-xl);font-weight:800;color:var(--color-dark)}
.problem__bottom-text strong{color:var(--color-primary)}
@media(max-width:1024px){.problem__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
  .problem{padding:3.5rem 1rem}
  .problem__grid{grid-template-columns:1fr;gap:.75rem}
  .problem__card{padding:1.5rem 1.25rem}
  .problem__bottom-text{font-size:var(--fs-lg)}
}

/* ----------------------------------------
   8. Concept
   ---------------------------------------- */
.concept{padding:5rem 1.5rem;background:var(--color-dark);color:#fff}
.concept__inner{max-width:var(--mw);margin:0 auto}
.concept__body{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.concept__text p{margin-bottom:1rem;color:rgba(255,255,255,.78);line-height:2;font-size:var(--fs-md)}
.concept__text-emphasis{font-size:var(--fs-xl);color:#fff !important;font-weight:700}
.concept__text-emphasis strong{color:var(--color-accent)}

.concept__comparison{display:flex;align-items:stretch;gap:1.25rem}
.concept__comparison-item{flex:1;padding:1.75rem 1.5rem;border-radius:var(--radius-lg)}
.concept__comparison-item--before{background:rgba(220,38,38,.1);border:2px solid rgba(220,38,38,.3)}
.concept__comparison-item--after{background:rgba(22,163,74,.1);border:2px solid rgba(22,163,74,.3)}
.concept__comparison-label{display:inline-block;font-size:var(--fs-sm);font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1rem;padding:4px 16px;border-radius:var(--radius-full)}
.concept__comparison-item--before .concept__comparison-label{background:rgba(220,38,38,.2);color:#fca5a5}
.concept__comparison-item--after .concept__comparison-label{background:rgba(22,163,74,.2);color:#86efac}

.concept__comparison-list li{padding:10px 0 10px 28px;font-size:var(--fs-base);font-weight:600;color:rgba(255,255,255,.92);position:relative;border-bottom:1px solid rgba(255,255,255,.06)}
.concept__comparison-list li:last-child{border-bottom:none}
.concept__comparison-item--before .concept__comparison-list li::before{content:'×';position:absolute;left:0;top:8px;color:#fca5a5;font-weight:900;font-size:var(--fs-lg)}
.concept__comparison-item--after .concept__comparison-list li::before{content:'✓';position:absolute;left:0;top:8px;color:#86efac;font-weight:900;font-size:var(--fs-lg)}
.concept__comparison-arrow{flex-shrink:0;color:rgba(255,255,255,.5);align-self:center}

@media(max-width:768px){
  .concept{padding:3.5rem 1rem}
  .concept__body{grid-template-columns:1fr;gap:2rem}
  .concept__comparison{flex-direction:column}
  .concept__comparison-arrow{transform:rotate(90deg)}
  .concept__comparison-item{width:100%}
}

/* ----------------------------------------
   9. Portal Image
   ---------------------------------------- */
.portal-image{padding:5rem 1.5rem;background:#fff}
.portal-image__inner{max-width:var(--mw);margin:0 auto}
.portal-image__frame{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;margin-bottom:2rem;border:1px solid var(--color-border)}
.portal-image__frame img{width:100%;height:auto}
.portal-image__points{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}
.portal-image__point{display:flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);font-weight:600;color:var(--color-primary);background:var(--color-primary-light);padding:8px 18px;border-radius:var(--radius-full)}
.portal-image__point-icon{font-size:var(--fs-md)}
@media(max-width:768px){
  .portal-image{padding:3.5rem 1rem}
  .portal-image__points{flex-direction:column;align-items:stretch}
}

/* ----------------------------------------
   10. Features
   ---------------------------------------- */
.features{padding:5rem 1.5rem;background:var(--color-bg-sub)}
.features__inner{max-width:var(--mw);margin:0 auto}
.features__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.features__card{background:#fff;border-radius:var(--radius-lg);padding:2rem 1.75rem;box-shadow:var(--shadow-md);transition:transform .25s,box-shadow .25s;border-top:3px solid var(--color-primary)}
.features__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.features__card-num{font-size:var(--fs-3xl);font-weight:900;color:var(--color-primary);opacity:.15;line-height:1;margin-bottom:.5rem}
.features__card-icon{color:var(--color-primary);margin-bottom:1rem}
.features__card-title{font-size:var(--fs-lg);font-weight:800;color:var(--color-dark);margin-bottom:.5rem}
.features__card-text{font-size:var(--fs-sm);color:var(--color-text-sub);line-height:1.85}
@media(max-width:1024px){.features__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
  .features{padding:3.5rem 1rem}
  .features__grid{grid-template-columns:1fr;gap:.75rem}
  .features__card{padding:1.5rem}
}

/* ----------------------------------------
   11. Mid CTA
   ---------------------------------------- */
.mid-cta{padding:3.5rem 1.5rem;background:var(--color-primary);text-align:center}
.mid-cta__inner{max-width:var(--mw-sm);margin:0 auto}
.mid-cta__text{font-size:var(--fs-2xl);font-weight:800;color:#fff;margin-bottom:.5rem}
.mid-cta__sub{font-size:var(--fs-base);color:rgba(255,255,255,.8);margin-bottom:2rem}
.mid-cta__buttons{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
@media(max-width:768px){
  .mid-cta{padding:2.5rem 1rem}
  .mid-cta__text{font-size:var(--fs-xl)}
  .mid-cta__buttons{flex-direction:column;align-items:center}
  .mid-cta__buttons .btn{width:100%;max-width:320px}
}

/* ----------------------------------------
   12. Strengths
   ---------------------------------------- */
.strengths{padding:5rem 1.5rem;background:#fff}
.strengths__inner{max-width:var(--mw-sm);margin:0 auto}
.strengths__list{display:flex;flex-direction:column;gap:1.25rem}
.strengths__item{display:flex;gap:1.75rem;align-items:flex-start;padding:1.75rem 2rem;background:var(--color-bg-sub);border-radius:var(--radius-lg);border-left:4px solid var(--color-primary);transition:box-shadow .25s}
.strengths__item:hover{box-shadow:var(--shadow-md)}
.strengths__item-num{font-size:var(--fs-3xl);font-weight:900;color:var(--color-primary);line-height:1;flex-shrink:0;opacity:.2}
.strengths__item-title{font-size:var(--fs-xl);font-weight:800;color:var(--color-dark);margin-bottom:.25rem}
.strengths__item-text{font-size:var(--fs-base);color:var(--color-text-sub);line-height:1.85}
@media(max-width:768px){
  .strengths{padding:3.5rem 1rem}
  .strengths__item{flex-direction:column;gap:.75rem;padding:1.5rem 1.25rem}
  .strengths__item-num{font-size:var(--fs-2xl)}
  .strengths__item-title{font-size:var(--fs-lg)}
}

/* ----------------------------------------
   13. Option
   ---------------------------------------- */
.option{padding:5rem 1.5rem;background:linear-gradient(160deg,#eff6ff 0%,#f0f7ff 100%)}
.option__inner{max-width:var(--mw);margin:0 auto}
.option__body{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center}
.option__text p{color:var(--color-text-sub);margin-bottom:1rem;line-height:1.9;font-size:var(--fs-md)}
.option__text strong{color:var(--color-primary)}
.option__list{margin:1rem 0}
.option__list li{padding:8px 0 8px 24px;position:relative;color:var(--color-text);font-weight:600}
.option__list li::before{content:'▸';position:absolute;left:0;color:var(--color-accent);font-weight:700}
.option__note{font-size:var(--fs-sm);color:var(--color-text-muted)}
.option__visual{display:flex;justify-content:center}
.option__visual-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2.5rem;text-align:center;width:100%;max-width:260px;box-shadow:var(--shadow-md)}
.option__visual-icon{color:var(--color-primary);margin-bottom:1rem;display:flex;justify-content:center}
.option__visual-text{font-size:var(--fs-lg);font-weight:800;color:var(--color-dark)}
@media(max-width:768px){
  .option{padding:3.5rem 1rem}
  .option__body{grid-template-columns:1fr;gap:2rem}
  .option__visual-card{max-width:100%}
}

/* ----------------------------------------
   14. Benefits
   ---------------------------------------- */
.benefits{padding:5rem 1.5rem;background:#fff}
.benefits__inner{max-width:var(--mw);margin:0 auto}
.benefits__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.benefits__card{background:var(--color-bg-sub);border-radius:var(--radius-lg);padding:2rem 1.5rem;text-align:center;transition:transform .25s,box-shadow .25s}
.benefits__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.benefits__card-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:0 auto 1rem;background:var(--color-primary-light);border-radius:var(--radius-full);color:var(--color-primary)}
.benefits__card-title{font-size:var(--fs-lg);font-weight:800;color:var(--color-dark);margin-bottom:.5rem}
.benefits__card-text{font-size:var(--fs-sm);color:var(--color-text-sub);line-height:1.8}
@media(max-width:1024px){.benefits__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
  .benefits{padding:3.5rem 1rem}
  .benefits__grid{grid-template-columns:1fr;gap:.75rem}
  .benefits__card{padding:1.5rem 1.25rem}
}

/* ----------------------------------------
   15. Flow
   ---------------------------------------- */
.flow{padding:5rem 1.5rem;background:var(--color-bg-sub)}
.flow__inner{max-width:var(--mw);margin:0 auto}
.flow__steps{display:flex;align-items:flex-start;justify-content:center;gap:.75rem}
.flow__step{flex:1;text-align:center;max-width:175px}
.flow__step-num{font-size:var(--fs-xs);font-weight:800;color:var(--color-primary);letter-spacing:.05em;margin-bottom:.5rem}
.flow__step-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 1rem;background:#fff;border-radius:var(--radius-full);color:var(--color-primary);box-shadow:var(--shadow-md)}
.flow__step-title{font-size:var(--fs-md);font-weight:800;color:var(--color-dark);margin-bottom:.25rem}
.flow__step-text{font-size:var(--fs-sm);color:var(--color-text-sub)}
.flow__step-arrow{display:flex;align-items:center;padding-top:55px;color:var(--color-text-muted);flex-shrink:0}
@media(max-width:768px){
  .flow{padding:3.5rem 1rem}
  .flow__steps{flex-direction:column;align-items:center;gap:.75rem}
  .flow__step{max-width:100%;display:flex;align-items:center;gap:1rem;text-align:left;background:#fff;padding:1rem;border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow)}
  .flow__step-icon{width:52px;height:52px;margin:0;flex-shrink:0}
  .flow__step-icon svg{width:26px;height:26px}
  .flow__step-num{margin-bottom:2px}
  .flow__step-arrow{display:none}
}

/* ----------------------------------------
   16. Pricing
   ---------------------------------------- */
.pricing{padding:5rem 1.5rem;background:#fff}
.pricing__inner{max-width:var(--mw);margin:0 auto}
.pricing__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2rem}
.pricing__card{background:#fff;border-radius:var(--radius-lg);padding:2.5rem 2rem;box-shadow:var(--shadow-md);border:2px solid var(--color-border);position:relative;transition:transform .25s,box-shadow .25s}
.pricing__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.pricing__card--accent{border-color:var(--color-primary)}
.pricing__card-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--color-accent);color:#fff;padding:4px 20px;border-radius:var(--radius-full);font-size:var(--fs-sm);font-weight:700}
.pricing__card-header{text-align:center;margin-bottom:1.5rem}
.pricing__card-title{font-size:var(--fs-xl);font-weight:800;color:var(--color-dark);margin-bottom:.25rem}
.pricing__card-desc{font-size:var(--fs-sm);color:var(--color-text-sub)}
.pricing__card-price{text-align:center;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}
.pricing__card-price-prefix{display:block;font-size:var(--fs-sm);color:var(--color-text-sub);margin-bottom:2px}
.pricing__card-price-num{font-size:var(--fs-4xl);font-weight:900;color:var(--color-primary);line-height:1}
.pricing__card-price-unit{font-size:var(--fs-lg);font-weight:700;color:var(--color-dark)}
.pricing__card-price-tax{font-size:var(--fs-sm);color:var(--color-text-muted);margin-left:4px}
.pricing__card-features{margin-bottom:1rem}
.pricing__card-features li{padding:8px 0 8px 26px;position:relative;font-size:var(--fs-sm);color:var(--color-text);border-bottom:1px solid var(--color-bg-sub)}
.pricing__card-features li::before{content:'✓';position:absolute;left:0;color:var(--color-green);font-weight:700}
.pricing__card-note{font-size:var(--fs-xs);color:var(--color-text-muted)}
.pricing__bottom-note{text-align:center;font-size:var(--fs-sm);color:var(--color-text-sub)}
@media(max-width:1024px){.pricing__cards{grid-template-columns:repeat(3,1fr);gap:1rem}.pricing__card-price-num{font-size:var(--fs-2xl)}}
@media(max-width:768px){
  .pricing{padding:3.5rem 1rem}
  .pricing__cards{grid-template-columns:1fr}
  .pricing__card{padding:2rem 1.5rem}
  .pricing__card-price-num{font-size:var(--fs-3xl)}
}

/* ----------------------------------------
   17. FAQ
   ---------------------------------------- */
.faq{padding:5rem 1.5rem;background:var(--color-bg-sub)}
.faq__inner{max-width:var(--mw-sm);margin:0 auto}
.faq__list{display:flex;flex-direction:column;gap:.75rem}
.faq__item{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .25s}
.faq__item:hover{box-shadow:var(--shadow-md)}
.faq__question{width:100%;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;text-align:left;font-weight:700;color:var(--color-dark);cursor:pointer;gap:1rem}
.faq__question-text{flex:1}
.faq__question-icon{width:24px;height:24px;position:relative;flex-shrink:0}
.faq__question-icon::before,.faq__question-icon::after{content:'';position:absolute;top:50%;left:50%;background:var(--color-primary);transition:transform .3s}
.faq__question-icon::before{width:14px;height:2px;transform:translate(-50%,-50%)}
.faq__question-icon::after{width:2px;height:14px;transform:translate(-50%,-50%)}
.faq__question[aria-expanded="true"] .faq__question-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq__answer{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq__answer.is-open{max-height:300px}
.faq__answer p{padding:0 1.5rem 1.25rem;color:var(--color-text-sub);line-height:1.9}
@media(max-width:768px){
  .faq{padding:3.5rem 1rem}
  .faq__question{padding:1rem;font-size:var(--fs-sm)}
  .faq__answer p{padding:0 1rem 1rem;font-size:var(--fs-sm)}
}

/* ----------------------------------------
   18. Contact
   ---------------------------------------- */
.contact{padding:5rem 1.5rem;background:var(--color-dark);text-align:center}
.contact__inner{max-width:var(--mw-sm);margin:0 auto}
.contact__title{font-size:var(--fs-3xl);font-weight:800;color:#fff;line-height:1.4;margin-bottom:1rem}
.contact__text{font-size:var(--fs-base);color:rgba(255,255,255,.7);margin-bottom:2rem;line-height:1.9}
.contact__buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}
.contact__info{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap}
.contact__info-item{display:flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.85)}
.contact__info-label{background:rgba(255,255,255,.12);padding:3px 10px;border-radius:var(--radius-sm,4px);font-size:var(--fs-xs);font-weight:700}
.contact__info-value{font-size:var(--fs-base);color:rgba(255,255,255,.85)}
.contact__info-value:hover{color:#fff}
@media(max-width:768px){
  .contact{padding:3.5rem 1rem}
  .contact__title{font-size:var(--fs-2xl)}
  .contact__buttons{flex-direction:column;align-items:center}
  .contact__buttons .btn{width:100%;max-width:320px}
  .contact__info{flex-direction:column;gap:.75rem;align-items:center}
}

/* ----------------------------------------
   19. Footer
   ---------------------------------------- */
.footer{background:#0a0a14;padding:2.5rem 1.5rem;color:rgba(255,255,255,.45)}
.footer__inner{max-width:var(--mw);margin:0 auto;text-align:center}
.footer__logo{display:inline-flex;align-items:center;margin-bottom:1rem}
.footer__logo-text{font-weight:800;font-size:var(--fs-base);color:#fff}
.footer__company{margin-bottom:1rem;font-size:var(--fs-sm);line-height:1.8}
.footer__company a{color:rgba(255,255,255,.45)}
.footer__company a:hover{color:#fff}
.footer__nav{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:1.5rem}
.footer__nav a{font-size:var(--fs-sm);color:rgba(255,255,255,.35);transition:color .2s}
.footer__nav a:hover{color:#fff}
.footer__copy{font-size:var(--fs-xs);color:rgba(255,255,255,.2)}
@media(max-width:768px){.footer__nav{gap:.75rem}}

/* ----------------------------------------
   20. Back to Top
   ---------------------------------------- */
.back-to-top{position:fixed;bottom:20px;right:20px;width:44px;height:44px;background:var(--color-primary);color:#fff;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(16px);transition:all .3s;z-index:900}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
.back-to-top:hover{background:var(--color-primary-dark);transform:translateY(-2px)}

/* ----------------------------------------
   21. Print
   ---------------------------------------- */
@media print{
  .header,.hero__scroll,.back-to-top,.mid-cta,.contact{display:none}
  body{color:#000;background:#fff}
  section{page-break-inside:avoid}
}
