  .container{
    width:100%;
    max-width:var(--layout-content-max);
    margin:0 auto;
    padding-inline:var(--layout-gutter);
  }
  section{ position:relative; }

  /* Flat section surfaces with a small decorative bridge to the next section. */
  #main-content > section{
    isolation:isolate;
    background:var(--section-background);
  }
  #main-content > section::after{
    content:''; position:absolute; right:0; bottom:0; left:0; z-index:0;
    height:var(--section-transition-size); pointer-events:none;
    background:linear-gradient(180deg, var(--section-background), var(--next-section-background));
  }
  #main-content > section > .container{ position:relative; z-index:1; }

  .skip-link{
    position:fixed; top:12px; left:12px; z-index:1100; padding:10px 16px;
    border-radius:var(--radius-control); background:var(--white); color:var(--charcoal);
    box-shadow:var(--shadow); transform:translateY(-160%); transition:transform .2s var(--ease);
  }
  .skip-link:focus{ transform:translateY(0); }

  /* ---------- scroll reveal ---------- */
  .reveal{ opacity:1; transform:none; }
  .reveal.reveal-pending{
    opacity:0;
    transform:translateY(14px);
    transition:opacity .45s var(--ease), transform .45s var(--ease);
  }
  .reveal.reveal-pending.in{ opacity:1; transform:translateY(0); }

  /* ---------- scrollbar / progress ---------- */
  #scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:100%;
    background:linear-gradient(90deg, var(--orange), var(--red), var(--maroon));
    z-index:1000;
    transform:scaleX(0); transform-origin:left center;
    transition:transform .08s linear;
  }

  /* ---------- header ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:900;
    padding:var(--space-6) 0;
    transition:padding .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease), backdrop-filter .35s var(--ease);
  }
  header.scrolled{
    padding:var(--space-3) 0;
    background:var(--header-bg);
    backdrop-filter:blur(14px) saturate(160%);
    -webkit-backdrop-filter:blur(14px) saturate(160%);
    box-shadow:0 1px 0 var(--line), 0 20px 40px -30px rgba(0,0,0,.25);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
  }
  .brand{
    display:flex; align-items:center; gap:12px;
    font-family:var(--font-heading);
  }
  .brand-area{ display:flex; align-items:center; gap:var(--space-3); }
  .brand img{ height:44px; width:auto; transition:height .35s var(--ease); }
  header.scrolled .brand img{ height:36px; }
  .brand-navbar .navbar-logo{ height:76px; width:auto; }
  header.scrolled .brand-navbar .navbar-logo{ height:60px; }
  .nav-links{ display:flex; align-items:center; gap:clamp(var(--space-5), 2vw, 1.875rem); }
  .nav-links > a,
  .nav-dropdown > summary{
    font-size:.94rem; font-weight:600; color:var(--charcoal-soft);
    position:relative; padding:4px 0;
  }
  .nav-links > a::after,
  .nav-dropdown > summary::after{
    content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px;
    background:linear-gradient(90deg,var(--orange),var(--red));
    transition:width .3s var(--ease);
  }
  .nav-links > a:hover,
  .nav-dropdown > summary:hover{ color:var(--ink); }
  .nav-links > a:hover::after,
  .nav-dropdown > summary:hover::after{ width:100%; }

  .nav-dropdown{ position:relative; }
  .nav-dropdown > summary{
    display:flex; align-items:center; gap:7px; cursor:pointer; list-style:none;
  }
  .nav-dropdown > summary::-webkit-details-marker{ display:none; }
  .nav-dropdown > summary::before{
    content:''; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
    order:2; transform:rotate(45deg) translateY(-2px); transition:transform .2s var(--ease);
  }
  .nav-dropdown[open] > summary::before{ transform:rotate(225deg) translate(-1px,-1px); }
  .nav-submenu{
    position:absolute; top:calc(100% + 14px); left:-18px; min-width:210px;
    display:grid; gap:4px; padding:10px; border:1px solid var(--line); border-radius:16px;
    background:var(--white); box-shadow:var(--shadow);
  }
  .nav-submenu a{
    padding:11px 12px; border-radius:10px; font-size:.9rem; font-weight:600; color:var(--charcoal-soft);
  }
  .nav-submenu a:hover{ background:var(--cream-2); color:var(--ink); }
  .nav-submenu a[aria-current="page"]{ background:var(--color-accent-soft); color:var(--accent-text); }

  .nav-cta{
    display:flex; align-items:center; gap:var(--space-5);
  }

  .theme-toggle{
    width:44px; height:44px; border:0;
    background:transparent; color:var(--charcoal); cursor:pointer;
    display:inline-flex; align-items:center; justify-content:center;
    transition:transform .25s var(--ease), color .25s var(--ease);
  }
  .theme-toggle:hover{ transform:translateY(-2px); color:var(--accent-text); }
  .theme-toggle:focus-visible{ outline:none; color:var(--accent-text); }
  .sun-icon{ display:none; }
  .moon-icon{ display:block; }
  :root[data-theme="dark"] .sun-icon{ display:block; }
  :root[data-theme="dark"] .moon-icon{ display:none; }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .sun-icon{ display:block; }
    :root:not([data-theme="light"]) .moon-icon{ display:none; }
  }

  .btn.mobile-brand-cta{ display:none; }

  .btn{
    position:relative; display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:14px 28px; border-radius:100px; font-weight:700; font-size:.92rem;
    cursor:pointer; border:none; overflow:hidden; isolation:isolate;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease);
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--gradient-action);
    background-size:200% 200%;
    background-position:0% 50%;
    color:#fff;
    box-shadow:0 10px 30px -10px rgba(198,42,47,.55);
  }
  .btn-primary:hover{
    transform:translateY(-3px) scale(1.02);
    background-position:100% 50%;
    box-shadow:0 16px 36px -10px rgba(198,42,47,.65);
  }
  .btn-primary:active{ transform:translateY(-1px) scale(.99); }
  .btn-primary::before{
    content:''; position:absolute; inset:0; z-index:-1;
    background:radial-gradient(circle at var(--x,50%) var(--y,50%), rgba(255,255,255,.35), transparent 60%);
    opacity:0; transition:opacity .3s;
  }
  .btn-primary:hover::before{ opacity:1; }

  .btn-ghost{
    background:transparent; color:var(--charcoal); border:1.5px solid var(--line);
  }
  .btn-ghost:hover{
    border-color:var(--accent-text); color:var(--accent-text); transform:translateY(-2px);
    box-shadow:0 8px 20px -10px rgba(0,0,0,.2);
  }

  .btn-sm{ padding:11px 22px; font-size:.85rem; }

  .burger{
    display:none; width:44px; height:44px; border-radius:12px; border:0;
    background:var(--white); align-items:center; justify-content:center; cursor:pointer;
    flex-direction:column; gap:5px;
  }
  .burger span{ width:20px; height:2px; background:var(--charcoal); border-radius:2px; transition:.3s; }
  .burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  /* ---------- hero ---------- */
  .hero{
    --section-background:var(--section-hero-bg);
    --next-section-background:var(--section-about-bg);
    min-height:100vh;
    display:flex; align-items:center;
    padding:clamp(8.125rem, 12vw, 9.375rem) 0 clamp(4.375rem, 8vw, 6.25rem);
    position:relative;
    overflow:hidden;
  }

  .hero-grid{
    position:relative; z-index:1;
    display:grid; grid-template-columns:1.05fr .95fr; gap:var(--layout-cluster-gap); align-items:center;
  }
  .eyebrow{
    display:inline-flex; align-items:center; gap:10px;
    color:var(--accent-text); background:var(--color-accent-soft); border:1px solid var(--color-accent-border);
    padding:var(--space-2) var(--space-4); border-radius:var(--radius-pill); margin-bottom:var(--space-6);
  }
  .eyebrow::before{
    content:''; width:7px; height:7px; border-radius:50%;
    background:var(--color-location-dot);
    box-shadow:0 0 0 4px var(--color-location-dot-ring);
  }
  .hero h1{ color:var(--charcoal); }
  .hero p.lead{
    margin-top:var(--space-6); color:var(--charcoal-soft);
    max-width:520px;
  }
  .hero-actions{
    display:flex; align-items:center; gap:var(--space-4);
    margin-top:clamp(var(--space-7), 4vw, var(--space-8)); flex-wrap:wrap;
  }

  .hero-visual{
    position:relative; display:flex; align-items:center; justify-content:center;
  }
  .hero-logo{
    width:100%; aspect-ratio:1; background-position:center; background-repeat:no-repeat; background-size:contain;
  }
  @media (min-width: 761px){
    .hero-logo{ background-image:url("../img/logo-hero.png"); }
  }

  /* ---------- section heads ---------- */
  .section-head{ max-width:640px; margin-bottom:var(--layout-heading-gap); }
  .section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
  .tag{
    display:inline-block; color:var(--accent-text); margin-bottom:var(--space-4);
  }
  .section-head h2{ color:var(--charcoal); }
  .section-head p{ margin-top:var(--space-4); color:var(--charcoal-soft); }

  /* ---------- about ---------- */
  .about{
    --section-background:var(--section-about-bg);
    --next-section-background:var(--section-indications-bg);
    padding:var(--layout-section-block) 0;
  }
  .about-grid{
    display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--layout-grid-gap); align-items:center;
  }
  .about-media{
    position:relative; width:100%; max-width:360px; justify-self:center;
  }
  .about-photo{
    border-radius:var(--radius-media); overflow:hidden; aspect-ratio:764/1024;
    position:relative; box-shadow:var(--shadow);
  }
  .about-photo img{ display:block; width:100%; height:100%; object-fit:cover; }

  .about-text h2{ color:var(--charcoal); margin-bottom:var(--space-6); }
  .about-text p{ color:var(--charcoal-soft); }
  .about-text p + p{ margin-top:var(--space-4); }
  .about-points{ margin-top:var(--space-7); display:grid; gap:var(--space-4); }
  .about-points li{
    display:flex; align-items:flex-start; gap:var(--space-3); font-weight:600; color:var(--charcoal);
  }
  .about-owner-link{ margin-top:var(--space-7); }
  .check{
    flex:none; width:26px; height:26px; border-radius:50%;
    background:linear-gradient(120deg, var(--orange), var(--red)); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:.8rem; margin-top:2px;
  }

  /* ---------- indications ---------- */
  .indications{
    --section-background:var(--section-indications-bg);
    --next-section-background:var(--section-process-bg);
    padding:var(--layout-section-block) 0; position:relative;
  }
  .indication-list{
    grid-template-columns:repeat(3, minmax(0, 1fr)); column-gap:var(--layout-cluster-gap); margin-top:0;
  }
  .indication-contact{ margin-top:var(--space-6); color:var(--charcoal-soft); text-align:left; }
  .indication-contact a{
    color:var(--accent-text); font-weight:700; transition:color .25s var(--ease);
  }
  .indication-contact a:hover{ color:var(--orange); }

  /* ---------- process ---------- */
  .process{
    --section-background:var(--section-process-bg);
    --next-section-background:var(--section-faq-bg);
    padding:var(--layout-section-block) 0;
  }
  .process-list{ position:relative; }
  .process-item{
    display:grid; grid-template-columns:var(--size-icon-tile) 1fr;
    gap:clamp(var(--space-5), 3vw, 1.75rem); padding-bottom:clamp(var(--space-8), 5vw, 3.5rem); position:relative;
  }
  .process-item:not(:last-child)::before{
    content:''; position:absolute; top:23px; bottom:-23px; left:21px; width:4px;
    background:radial-gradient(circle, var(--orange) 1.5px, transparent 1.75px) center top / 4px 8px repeat-y;
    opacity:.5;
  }
  .process-item:last-child{ padding-bottom:0; }
  .process-num{
    font-family:var(--font-body); font-size:.82rem; font-weight:800; letter-spacing:.04em;
    z-index:1;
  }
  .process-content h3{ color:var(--charcoal); margin-bottom:var(--space-2); }
  .process-content p{ color:var(--charcoal-soft); max-width:560px; }

  /* ---------- frequently asked questions ---------- */
  .faq{
    --section-background:var(--section-faq-bg);
    --next-section-background:var(--section-contact-bg);
    padding:var(--layout-section-block) 0;
  }
  .faq-list{ max-width:900px; display:grid; gap:var(--space-3); }
  .faq-item{
    border:1px solid var(--line); border-radius:var(--radius-card); background:var(--white);
    transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
  }
  .faq-item:hover{ border-color:var(--color-accent-border); }
  .faq-item.is-open{ border-color:var(--color-accent-border); box-shadow:var(--shadow); }
  .faq-question{
    display:flex; align-items:center; justify-content:space-between; gap:var(--space-6);
    width:100%; padding:clamp(var(--space-5), 3vw, 1.625rem); border:0; background:transparent;
    color:var(--charcoal); text-align:left; cursor:pointer;
  }
  .faq-question::after{
    content:'+'; flex:none; color:var(--accent-text); font-family:var(--font-body);
    font-size:1.55rem; font-weight:500; line-height:1; transition:transform .35s var(--ease);
  }
  .faq-item.is-open .faq-question::after{ transform:rotate(45deg); }
  .faq-answer{
    display:grid; grid-template-rows:0fr; visibility:hidden;
    transition:grid-template-rows .4s var(--ease), visibility 0s linear .4s;
  }
  .faq-answer-inner{
    min-height:0; overflow:hidden; opacity:0; transform:translateY(-6px);
    padding:0 clamp(var(--space-5), 3vw, 1.625rem);
    transition:opacity .25s var(--ease), transform .4s var(--ease), padding-bottom .4s var(--ease);
  }
  .faq-item.is-open .faq-answer{
    grid-template-rows:1fr; visibility:visible; transition-delay:0s;
  }
  .faq-item.is-open .faq-answer-inner{
    opacity:1; transform:translateY(0); padding-bottom:clamp(var(--space-5), 3vw, 1.625rem);
  }
  .faq-answer p{ max-width:760px; color:var(--charcoal-soft); }
  .faq-answer p + p{ margin-top:var(--space-4); }
  .faq-answer a{ color:var(--accent-text); font-weight:700; transition:color .25s var(--ease); }
  .faq-answer a:hover{ color:var(--orange); }

  /* ---------- contact ---------- */
  .contact{
    --section-background:var(--section-contact-bg);
    --next-section-background:var(--section-footer-bg);
    padding:var(--layout-section-block) 0;
  }
  .contact-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:clamp(var(--space-7), 5vw, 3.75rem);
    background:linear-gradient(150deg, var(--contact-bg-start) 0%, var(--contact-bg-end) 100%);
    border:1px solid var(--contact-border); box-shadow:var(--contact-shadow);
    border-radius:var(--radius-section); padding:var(--layout-panel-padding); color:#fff; position:relative; overflow:hidden;
  }
  .contact-grid::before{
    content:''; position:absolute; width:420px; height:420px; border-radius:50%;
    background:radial-gradient(circle, rgba(var(--brand-orange-rgb),.28), transparent 70%);
    top:-140px; right:-100px;
  }
  .contact-info{ position:relative; z-index:1; }
  .contact-info .tag{ color:var(--brand-orange-contrast-dark); }
  .contact-info h2{ margin-bottom:var(--space-5); }
  .contact-info p{ color:rgba(255,255,255,.72); max-width:440px; }
  .info-rows{ margin-top:var(--space-7); display:grid; gap:var(--space-5); }
  .info-row{ display:flex; gap:var(--space-4); align-items:flex-start; }
  .info-row strong{ display:block; font-size:.95rem; }
  .info-row span, .info-row a{ font-size:.9rem; color:rgba(255,255,255,.68); transition:color .25s var(--ease); }
  .info-row .info-note,
  .info-row-group .info-note{
    margin-top:var(--space-2); color:rgba(255,255,255,.62); font-size:.82rem; line-height:1.55;
  }
  .info-row-group .info-note{ margin-left:calc(var(--size-icon-tile) + var(--space-4)); }
  .info-row-link:hover span,
  .info-row-link:focus-visible span{ color:var(--brand-orange-contrast-dark); }
  .address-link{ text-decoration:none; transition:color .25s var(--ease); }

  .social-row{ display:flex; gap:var(--space-3); margin-top:var(--space-7); }
  .social-icon{
    width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
    display:flex; align-items:center; justify-content:center; color:#fff;
    transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
  }
  .social-icon:hover,
  .social-icon:focus-visible{
    color:var(--brand-orange-contrast-dark); border-color:rgba(255,180,94,.7);
    background:rgba(255,255,255,.08); transform:translateY(-2px);
  }

  .contact-form{
    position:relative; z-index:1; background:var(--contact-form-bg); border:1px solid var(--contact-form-border);
    border-radius:var(--radius-card-large); padding:var(--layout-card-padding); backdrop-filter:blur(6px);
  }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
  .field{ margin-bottom:var(--space-4); }
  .field label{ display:block; font-size:.8rem; margin-bottom:var(--space-2); color:rgba(255,255,255,.7); font-weight:600; }
  .field input, .field textarea, .field select{
    width:100%; padding:13px 16px; border-radius:12px; border:1px solid var(--contact-field-border);
    background:var(--contact-field-bg); color:#fff; font-family:inherit; font-size:.94rem;
    transition:.3s var(--ease); outline:none;
  }
  .field textarea{ resize:vertical; min-height:100px; }
  .field input::placeholder, .field textarea::placeholder{ color:rgba(255,255,255,.4); }
  .field input:focus, .field textarea:focus, .field select:focus{
    border-color:var(--brand-orange-contrast-dark); background:var(--contact-field-focus-bg); box-shadow:0 0 0 4px rgba(var(--brand-orange-rgb),.18);
  }
  .form-submit{ width:100%; margin-top:6px; }
  .form-submit:disabled{ cursor:wait; opacity:.7; transform:none; }
  .form-response-time{ color:rgba(255,255,255,.58); margin-top:var(--space-3); text-align:center; }
  .form-honeypot{
    position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden;
  }
  .form-status{
    padding:var(--space-4) var(--space-5); border:1px solid rgba(255,255,255,.22); border-radius:14px;
    margin-top:var(--space-3); background:rgba(255,255,255,.1); color:#fff; font-size:.9rem; line-height:1.55;
  }
  .form-status[hidden]{ display:none; }
  .form-status.is-success{ border-color:rgba(111,189,139,.55); background:rgba(63,140,99,.18); }
  .form-status.is-error{ border-color:rgba(255,180,94,.62); background:rgba(var(--brand-orange-rgb),.17); }

  /* ---------- footer ---------- */
  footer{
    padding:clamp(var(--space-9), 6vw, var(--space-10)) 0 clamp(1.75rem, 4vw, 2.25rem);
    border-top:1px solid var(--line); background:var(--section-footer-bg);
  }
  .footer-top{
    display:flex; justify-content:flex-start; align-items:flex-start; gap:clamp(var(--space-9), 8vw, 6.875rem); flex-wrap:wrap;
    padding-bottom:clamp(var(--space-8), 5vw, var(--space-9));
  }
  .footer-brand{ max-width:320px; }
  .footer-brand .brand{ margin-bottom:var(--space-4); }
  .footer-wordmark .footer-logo{ height:76px; width:auto; }
  .footer-cols{ display:flex; gap:clamp(var(--space-8), 6vw, 4.375rem); flex-wrap:wrap; text-align:left; }
  .footer-col{ text-align:left; }
  .footer-col ul{ display:grid; gap:var(--space-3); }
  .footer-col a{ font-size:.92rem; color:var(--charcoal-soft); transition:.25s; }
  .footer-col a:hover{ color:var(--accent-text); }
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; padding-top:var(--space-6); border-top:1px solid var(--line);
    font-size:.82rem; color:var(--charcoal-soft); flex-wrap:wrap; gap:var(--space-3);
  }
  .footer-legal{ display:flex; flex-wrap:wrap; gap:8px 20px; }
  .site-credit strong{ color:var(--accent-text); }
  .cookie-settings{
    padding:0; border:0; background:transparent; color:var(--charcoal-soft); font:inherit;
    cursor:pointer; transition:color .25s var(--ease), opacity .25s var(--ease);
  }
  .cookie-settings:hover,
  .cookie-settings:focus-visible{ color:var(--accent-text); }
  .cookie-banner{
    position:fixed; left:max(var(--layout-gutter), calc((100vw - var(--layout-content-max)) / 2 + var(--layout-gutter)));
    right:max(var(--layout-gutter), calc((100vw - var(--layout-content-max)) / 2 + var(--layout-gutter)));
    bottom:var(--space-5); z-index:1200; max-width:880px; padding:var(--layout-card-padding);
    border:1px solid var(--line); border-radius:var(--radius-card-large); background:var(--white); color:var(--charcoal);
    box-shadow:0 22px 60px -24px rgba(0,0,0,.48); opacity:0; transform:translateY(calc(100% + var(--space-7)));
    transition:opacity .3s var(--ease), transform .3s var(--ease);
  }
  .cookie-banner.show{ opacity:1; transform:translateY(0); }
  .cookie-banner-content{ display:grid; grid-template-columns:minmax(0, 1fr) auto; column-gap:var(--space-7); align-items:center; }
  .cookie-banner h2{ grid-column:1; margin-bottom:var(--space-2); color:var(--charcoal); }
  .cookie-banner p{ grid-column:1; max-width:620px; color:var(--charcoal-soft); }
  .cookie-banner p a{ color:var(--accent-text); font-weight:700; }
  .cookie-banner-actions{ grid-column:2; grid-row:1 / span 2; display:flex; gap:var(--space-3); }
  .cookie-banner-actions .btn{ min-width:7.5rem; }
  .back-top{
    position:fixed; right:24px; bottom:24px; z-index:750;
    width:48px; height:48px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:.35s var(--ease); background:var(--white); color:var(--charcoal);
    box-shadow:0 12px 32px -14px rgba(0,0,0,.38);
  }
  .back-top:hover{ background:linear-gradient(135deg,var(--orange),var(--red),var(--maroon)); border-color:transparent; color:#fff; transform:translateY(-4px); }

  /* ---------- mobile menu ---------- */
  .mobile-menu{
    position:fixed; inset:0; z-index:800; background:var(--cream);
    display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:var(--space-2);
    padding:7rem var(--layout-gutter) var(--space-8); overflow-y:auto;
    visibility:hidden; pointer-events:none; transform:translateY(-100%);
    transition:transform .5s var(--ease), visibility 0s linear .5s;
  }
  .mobile-menu.open{
    visibility:visible; pointer-events:auto; transform:translateY(0); transition-delay:0s;
  }
  body.menu-open{ overflow:hidden; }
  .mobile-menu > a,
  .mobile-dropdown > summary{
    width:min(100%, 320px); padding:12px 18px; border-radius:var(--radius-icon-tile);
    font-family:var(--font-heading); font-size:1.65rem; color:var(--charcoal); text-align:center;
    transition:background .25s var(--ease), color .25s var(--ease);
  }
  .mobile-menu > a{ display:block; }
  .mobile-dropdown{ width:100%; display:grid; justify-items:center; color:var(--charcoal); }
  .mobile-dropdown > summary{
    display:flex; align-items:center; justify-content:center; gap:12px; cursor:pointer; list-style:none;
  }
  .mobile-dropdown > summary::-webkit-details-marker{ display:none; }
  .mobile-dropdown > summary::after{
    content:''; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
    transform:rotate(45deg) translateY(-2px); transition:transform .25s var(--ease);
  }
  .mobile-dropdown[open] > summary::after{ transform:rotate(225deg) translate(-1px,-1px); }
  .mobile-submenu{
    width:min(100%, 300px); display:grid; gap:var(--space-1); margin:var(--space-2) auto var(--space-3); padding:var(--space-2);
    border:1px solid var(--line); border-radius:var(--radius-icon-tile); background:var(--white);
  }
  .mobile-submenu a{
    padding:10px 14px; border-radius:10px; font-family:var(--font-body); font-size:1rem;
    color:var(--charcoal-soft); text-align:center; transition:background .25s var(--ease), color .25s var(--ease);
  }
  .mobile-menu > a:hover,
  .mobile-menu > a:focus-visible,
  .mobile-dropdown > summary:hover,
  .mobile-dropdown > summary:focus-visible,
  .mobile-submenu a:hover,
  .mobile-submenu a:focus-visible{
    background:var(--color-accent-soft); color:var(--accent-text); outline:none;
  }
  .mobile-menu > a:active,
  .mobile-dropdown > summary:active,
  .mobile-submenu a:active{ color:var(--accent-text); }
  .mobile-submenu a[aria-current="page"]{ background:var(--color-accent-soft); color:var(--accent-text); }

  @media (max-width: 1180px){
    .nav-links{ display:none; }
    .burger{ display:flex; }
    header nav{ gap:var(--space-3); }
    .brand-area{ flex:1 1 auto; min-width:0; }
    .brand-navbar{ min-width:0; }
    .brand-navbar .navbar-logo{ height:48px; max-width:100%; object-fit:contain; object-position:left center; }
    header.scrolled .brand-navbar .navbar-logo{ height:44px; }
    .btn.mobile-brand-cta{ display:inline-flex; }
    .nav-cta > .desktop-nav-cta{ display:none; }
    .nav-cta{ flex:0 1 auto; min-width:0; margin-left:auto; gap:var(--space-3); }
  }
  @media (max-width: 1020px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero-visual{ order:-1; max-width:340px; margin:0 auto var(--space-5); }
    .about-grid{ grid-template-columns:1fr; }
    .about-media{ max-width:380px; margin:0 auto; }
    .indication-list{ grid-template-columns:1fr 1fr; }
    .contact-grid{ grid-template-columns:1fr; }
    .form-row{ grid-template-columns:1fr; }
  }
  @media (max-width: 760px){
    .hero-visual{ display:none; }
  }
  @media (max-width: 640px){
    .indication-list{ grid-template-columns:1fr; }
    .contact-grid{ border-radius:24px; }
    .footer-top{ flex-direction:column; gap:var(--space-7); }
    .footer-wordmark .footer-logo{ height:64px; }
  }
  @media (max-width: 480px){
    header .container{ padding-inline:clamp(10px, 4vw, 20px); }
    header nav{ gap:clamp(6px, 2vw, 12px); }
    .brand-navbar .navbar-logo,
    header.scrolled .brand-navbar .navbar-logo{ width:clamp(72px, 22vw, 96px); height:auto; }
    .footer-wordmark .footer-logo{ height:56px; }
    .nav-cta{ gap:clamp(4px, 1.5vw, 8px); }
    .mobile-brand-cta{
      flex:0 1 auto; min-width:0;
      padding:clamp(8px, 2.5vw, 10px) clamp(9px, 3.5vw, 15px);
      font-size:clamp(.64rem, 2.6vw, .78rem);
    }
    .theme-toggle, .burger{
      flex:0 0 clamp(34px, 10vw, 40px); width:clamp(34px, 10vw, 40px); height:clamp(34px, 10vw, 40px);
    }
  }
  @media (max-width: 360px){
    header .container{ padding-inline:8px; }
    header nav{ gap:6px; }
    .brand-area{ gap:4px; }
    .brand-navbar .navbar-logo,
    header.scrolled .brand-navbar .navbar-logo{ width:70px; height:auto; }
    .mobile-brand-cta{ padding:7px 8px; font-size:.62rem; }
    .nav-cta{ gap:6px; }
    .theme-toggle, .burger{ flex-basis:34px; width:34px; height:34px; }
  }

  /* ---------- owner page ---------- */
  .owner-main{
    padding:var(--layout-page-start) 0 var(--layout-page-end);
    position:relative; isolation:isolate; background:var(--color-bg-page);
  }
  .owner-grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:var(--layout-grid-gap); align-items:start; }
  .owner-photo{
    aspect-ratio:943 / 1308; border-radius:30px; border:1px solid var(--line); overflow:hidden;
    box-shadow:var(--shadow);
  }
  .owner-photo img{ width:100%; height:100%; object-fit:cover; }
  .owner-copy .tag{ margin-bottom:var(--space-4); }
  .owner-copy h1{ color:var(--charcoal); margin-bottom:var(--space-6); }
  .owner-copy .owner-intro{ color:var(--accent-text); }
  .owner-copy p:not(.owner-intro){ margin-top:var(--space-4); color:var(--charcoal-soft); }
  .owner-education{ margin-top:var(--space-7); }
  .owner-education h2{ color:var(--charcoal); margin-bottom:var(--space-4); }
  .owner-education-list,
  .legal-rights-list{ border-top:1px solid var(--line); }
  .owner-education-list li,
  .legal-rights-list li{
    display:grid; grid-template-columns:100px minmax(0, 1fr); gap:var(--space-4);
    padding:var(--space-4) 0; border-bottom:1px solid var(--line); color:var(--charcoal-soft);
    font-size:var(--type-small-size); line-height:var(--type-small-line);
  }
  .owner-education-period,
  .legal-rights-list strong{ color:var(--accent-text); font-weight:700; }
  .owner-contact{
    margin-top:var(--space-7); padding:var(--layout-card-padding); border-radius:20px; border:1px solid var(--line); background:var(--white);
  }
  .owner-contact h2{ color:var(--charcoal); margin-bottom:var(--space-4); }
  .owner-contact ul{ display:grid; gap:var(--space-3); color:var(--charcoal-soft); }
  .owner-contact a{ color:var(--accent-text); font-weight:700; }
  .owner-actions{ display:flex; gap:var(--space-3); margin-top:var(--space-7); flex-wrap:wrap; }

  /* ---------- information pages ---------- */
  .info-main{
    padding:var(--layout-page-start) 0 var(--layout-page-end);
    position:relative; isolation:isolate; background:var(--color-bg-page);
  }
  .owner-main::after,
  .info-main::after{
    content:''; position:absolute; right:0; bottom:0; left:0; z-index:0;
    height:var(--section-transition-size); pointer-events:none;
    background:linear-gradient(180deg, var(--color-bg-page), var(--section-footer-bg));
  }
  .owner-main > .container,
  .info-main > .container{ position:relative; z-index:1; }
  .info-hero{ max-width:780px; margin-bottom:clamp(var(--space-8), 5vw, 3.375rem); }
  .info-hero .tag{ margin-bottom:var(--space-4); }
  .info-hero h1{ color:var(--charcoal); }
  .info-hero .text-lead{ max-width:720px; margin-top:var(--space-6); color:var(--charcoal-soft); }
  .not-found-main{ min-height:72vh; display:flex; align-items:center; }
  .not-found-main > .container{ width:100%; }
  .not-found-main .info-hero{ margin-bottom:0; }
  .not-found-code{
    display:block; margin-bottom:var(--space-3); color:var(--accent-text);
    font-family:var(--font-heading); font-size:clamp(4.5rem, 14vw, 9rem); font-weight:600; line-height:.9;
  }
  .info-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:var(--space-6); }
  .info-card{
    padding:var(--layout-card-padding); border:1px solid var(--line); border-radius:var(--radius-card-large);
    background:var(--white);
  }
  .info-card h2{ margin-bottom:var(--space-3); color:var(--charcoal); }
  .info-card p{ color:var(--charcoal-soft); }
  .info-card p + p{ margin-top:var(--space-3); }
  .info-source{ margin-top:var(--space-6); color:var(--charcoal-soft); }
  .info-source a{ color:var(--accent-text); font-weight:700; transition:color .25s var(--ease); }
  .info-source a:hover{ color:var(--orange); }
  .tariff-pricing{
    padding:var(--layout-card-padding); border:1px solid var(--line);
    border-radius:var(--radius-card-large); background:var(--white);
  }
  .tariff-pricing h2{ color:var(--charcoal); }
  .tariff-table-wrap{ margin-top:var(--space-5); overflow-x:auto; }
  .tariff-table{ width:100%; border-collapse:collapse; color:var(--charcoal-soft); }
  .tariff-table th,
  .tariff-table td{ padding:15px 12px; border-bottom:1px solid var(--line); text-align:left; }
  .tariff-table th{
    color:var(--charcoal); font-size:var(--type-label-size); line-height:var(--type-label-line);
    letter-spacing:.08em; text-transform:uppercase;
  }
  .tariff-table th:first-child,
  .tariff-table td:first-child{ padding-left:0; }
  .tariff-table th:last-child,
  .tariff-table td:last-child{ padding-right:0; text-align:right; white-space:nowrap; }
  .tariff-notes{ display:grid; gap:var(--space-3); margin-top:var(--space-6); }
  .tariff-notes p{ color:var(--charcoal-soft); }
  .tariff-info-grid{ margin-top:var(--space-6); }
  .tariff-reimbursement{ grid-column:1 / -1; }
  .tariff-info-grid a{ color:var(--accent-text); font-weight:700; }
  .info-cta{
    margin-top:clamp(var(--space-7), 4vw, 2.75rem); padding:var(--layout-card-padding); border:1px solid var(--line);
    border-radius:var(--radius-card-large); background:var(--cream-2);
  }
  .info-cta h2{ color:var(--charcoal); }
  .info-cta p{ max-width:650px; margin-top:var(--space-3); color:var(--charcoal-soft); }
  .info-actions{ display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-6); }

  .content-document,
  .legal-document{
    max-width:900px; padding:var(--layout-card-padding); border:1px solid var(--line);
    border-radius:var(--radius-card-large); background:var(--white);
  }
  .content-document p{ color:var(--charcoal-soft); }
  .content-document p + p{ margin-top:var(--space-4); }
  .legal-updated{ margin-top:var(--space-4); color:var(--charcoal-soft); }
  .legal-section + .legal-section{ margin-top:clamp(var(--space-7), 4vw, var(--space-8)); }
  .legal-section h2{ margin-bottom:var(--space-3); color:var(--charcoal); }
  .legal-section p{ color:var(--charcoal-soft); }
  .legal-section p + p{ margin-top:var(--space-4); }
  .legal-section a:not(.btn){ color:var(--accent-text); font-weight:700; }
  .legal-rights-list{ margin:var(--space-5) 0; }
  .legal-rights-list li{ grid-template-columns:12rem minmax(0, 1fr); align-items:start; }
  @media (max-width: 800px){
    .owner-grid{ grid-template-columns:1fr; }
    .owner-photo{ max-width:420px; width:100%; margin:0 auto; }
    .info-grid{ grid-template-columns:1fr; }
    .tariff-reimbursement{ grid-column:auto; }
  }

  @media (max-width: 640px){
    .back-top{ right:18px; bottom:18px; width:44px; height:44px; }
    .legal-rights-list li{ grid-template-columns:1fr; gap:4px; }
    .cookie-banner{ bottom:var(--space-3); }
    .cookie-banner-content{ grid-template-columns:1fr; row-gap:var(--space-5); }
    .cookie-banner h2,
    .cookie-banner p,
    .cookie-banner-actions{ grid-column:1; grid-row:auto; }
    .cookie-banner-actions{ display:grid; grid-template-columns:1fr 1fr; }
    .cookie-banner-actions .btn{ min-width:0; width:100%; }
    .owner-education-list li{ grid-template-columns:1fr; gap:4px; }
  }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
    .reveal.reveal-pending{ opacity:1; transform:none; }
  }
