:root{
      --ink:#0b2239;
      --paper:#f8fbfd;
      --ivory:#edf5fa;
      --blue:#0c406f;
      --blue-deep:#082f52;
      --blue-soft:#dbeaf4;
      --blue-mist:#eef6fb;
      --accent:#1784c2;
      --sand:#c9dce9;
      --muted:#5f6b75;
      --line:rgba(12,64,111,.16);
      --radius:22px;
      --shadow:0 18px 50px rgba(8,47,82,.12);
      --max:1240px;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    html:focus-within{scroll-behavior:smooth}

    .sr-only{
      position:absolute !important;
      width:1px !important;
      height:1px !important;
      padding:0 !important;
      margin:-1px !important;
      overflow:hidden !important;
      clip:rect(0,0,0,0) !important;
      white-space:nowrap !important;
      border:0 !important;
    }

    .skip-link{
      position:fixed;
      top:12px;
      left:12px;
      z-index:1000;
      padding:11px 16px;
      border-radius:999px;
      background:var(--ink);
      color:white;
      font-size:.78rem;
      font-weight:700;
      transform:translateY(-160%);
      transition:transform .2s ease;
    }

    .skip-link:focus{transform:translateY(0)}
    section[id],main[id]{scroll-margin-top:96px}

    body{
      margin:0;
      background:var(--paper);
      color:var(--ink);
      font-family:Arial, Helvetica, sans-serif;
      line-height:1.5;
      overflow-x:hidden;
    }

    h1,h2,h3,p{margin-top:0}
    h1,h2,h3{
      font-family:Georgia, "Times New Roman", serif;
      font-weight:400;
      letter-spacing:-.035em;
    }

    a{color:inherit;text-decoration:none}
    img{display:block;width:100%;height:100%;object-fit:cover}
    button,input,select,textarea{font:inherit}
    button{touch-action:manipulation}
    section{position:relative}

    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible{
      outline:3px solid rgba(23,132,194,.34);
      outline-offset:4px;
    }

    .wrap{width:min(var(--max), calc(100% - 40px));margin:auto}

    .eyebrow{
      text-transform:uppercase;
      letter-spacing:.22em;
      font-size:.72rem;
      font-weight:700;
      color:var(--accent);
      margin-bottom:18px;
    }

    .section-title{
      font-size:clamp(2.35rem, 4.8vw, 4.65rem);
      line-height:.94;
      margin-bottom:24px;
    }

    .lead{
      font-size:clamp(1.05rem, 1.6vw, 1.35rem);
      line-height:1.65;
      color:#33495a;
      max-width:760px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:52px;
      padding:0 24px;
      border:1px solid var(--ink);
      border-radius:999px;
      text-transform:uppercase;
      letter-spacing:.14em;
      font-size:.72rem;
      font-weight:700;
      transition:.25s ease;
      cursor:pointer;
    }

    .btn.dark{background:var(--blue);border-color:var(--blue);color:white}
    .btn.dark:hover{background:var(--blue-deep);border-color:var(--blue-deep);transform:translateY(-2px)}
    .btn.light{border-color:rgba(255,255,255,.7);color:white}
    .btn.light:hover{background:white;color:var(--ink)}

    /* HEADER */
    .site-header{
      position:fixed;
      inset:0 0 auto 0;
      z-index:50;
      padding:18px 0;
      transition:.3s ease;
    }

    .site-header.scrolled{
      background:rgba(248,251,253,.92);
      backdrop-filter:blur(16px);
      border-bottom:1px solid rgba(12,64,111,.10);
    }

    .nav{
      width:min(var(--max), calc(100% - 40px));
      margin:auto;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
    }

    .brand{
      display:flex;
      align-items:center;
      gap:10px;
      color:white;
      transition:.3s ease;
      white-space:nowrap;
    }

    .site-header.scrolled .brand,
    .site-header.scrolled .nav-links,
    .site-header.scrolled .lang-toggle,
    .site-header.scrolled .menu-toggle,
    .site-header.menu-active .brand,
    .site-header.menu-active .lang-toggle,
    .site-header.menu-active .menu-toggle{color:var(--blue)}

    .brand-symbol{
      width:44px;
      height:40px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
    }

    .brand-symbol{
      position:relative;
      color:inherit;
    }

    .brand-symbol img{
      width:100%;
      height:100%;
      object-fit:contain;
      opacity:0;
      pointer-events:none;
    }

    .brand-symbol::before{
      content:"";
      position:absolute;
      inset:0;
      background:currentColor;
      -webkit-mask:url("../images/stairs-symbol.png") center/contain no-repeat;
      mask:url("../images/stairs-symbol.png") center/contain no-repeat;
      transition:background-color .3s ease;
    }

    .brand-copy{
      display:flex;
      flex-direction:column;
      gap:3px;
      line-height:1;
    }

    .brand-name{
      font-family:Georgia, "Times New Roman", serif;
      letter-spacing:.14em;
      font-size:.91rem;
      font-weight:700;
    }

    .brand-descriptor{
      font-size:.53rem;
      text-transform:uppercase;
      letter-spacing:.20em;
      font-weight:700;
      opacity:.68;
    }

    .nav-links{
      display:flex;
      align-items:center;
      gap:24px;
      color:white;
      font-size:.74rem;
      text-transform:uppercase;
      letter-spacing:.13em;
      font-weight:700;
      transition:.3s ease;
    }

    .nav-links a{opacity:.86}
    .nav-links a:hover{opacity:1}

    .lang-toggle{
      display:flex;
      align-items:center;
      gap:8px;
      color:white;
      transition:.3s ease;
    }

    .lang-toggle button{
      background:none;border:0;padding:4px 2px;color:inherit;cursor:pointer;
      opacity:.5;font-size:.74rem;font-weight:800;letter-spacing:.12em;
    }
    .lang-toggle button.active{opacity:1;border-bottom:1px solid currentColor}

    .nav-controls{
      display:flex;
      align-items:center;
      gap:18px;
    }

    .menu-toggle{
      display:none;
      width:44px;
      height:44px;
      padding:0;
      border:1px solid currentColor;
      border-radius:50%;
      background:transparent;
      color:white;
      cursor:pointer;
      align-items:center;
      justify-content:center;
      flex-direction:column;
      gap:5px;
      transition:.25s ease;
    }

    .menu-toggle-line{
      width:17px;
      height:1px;
      background:currentColor;
      transition:transform .25s ease,opacity .25s ease;
    }

    .menu-toggle[aria-expanded="true"] .menu-toggle-line:first-of-type{
      transform:translateY(3px) rotate(45deg);
    }

    .menu-toggle[aria-expanded="true"] .menu-toggle-line:last-of-type{
      transform:translateY(-3px) rotate(-45deg);
    }

    .mobile-nav{display:none}
    body.menu-open{overflow:hidden}


    /* HERO */
    .hero{
      min-height:100svh;
      display:grid;
      align-items:end;
      color:white;
      background:
        linear-gradient(180deg, rgba(8,47,82,.12) 0%, rgba(8,47,82,.24) 42%, rgba(5,28,48,.80) 100%),
        url("../images/hero-sicily.webp") center/cover no-repeat;
    }

    .hero-inner{
      padding:170px 0 80px;
      display:grid;
      grid-template-columns:1.35fr .65fr;
      gap:60px;
      align-items:end;
    }

    .hero h1{
      font-size:clamp(4rem, 9.5vw, 9rem);
      line-height:.82;
      margin:0;
      max-width:1000px;
    }

    .hero h1 span{display:block}
    .hero .hero-copy{max-width:480px;margin-left:auto}
    .hero .hero-copy p{font-size:1.15rem;color:rgba(255,255,255,.85);margin-bottom:28px}
    .hero-actions{display:flex;flex-wrap:wrap;gap:12px}

    /* POSITIONING */
    .positioning{padding:120px 0;background:linear-gradient(180deg,var(--blue-mist) 0%,var(--ivory) 100%)}
    .about-eyebrow{margin-bottom:30px}

    .positioning-grid{
      display:grid;
      grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);
      gap:clamp(54px,7vw,96px);
      align-items:start;
    }

    .about-main{min-width:0}

    .about-main .section-title{
      max-width:760px;
      color:var(--blue-deep);
    }

    .about-main .lead{max-width:730px}


    .manifesto{
      font-family:Georgia,serif;
      font-size:clamp(2rem,4vw,4rem);
      line-height:1.05;
      max-width:700px;
      margin-bottom:34px;
    }

    .manifesto strong{font-weight:400;color:var(--accent)}
/* UNGOOGLEABLE */
    .unlock{padding:140px 0;background:var(--paper)}
    .unlock-head{
      display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:end;margin-bottom:56px
    }

    .gallery{
      display:grid;
      grid-template-columns:1.2fr .8fr .8fr;
      gap:16px;
      min-height:650px;
    }

    .gallery-card{
      position:relative;overflow:hidden;border-radius:var(--radius);min-height:320px;
      box-shadow:var(--shadow);
    }
    .gallery-card img{transition:transform .7s ease}
    .gallery-card:hover img{transform:scale(1.04)}
    .gallery-card:after{
      content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.78))
    }
    .gallery-card .caption{
      position:absolute;z-index:2;left:24px;right:24px;bottom:22px;color:white
    }
    .gallery-card .caption span{
      display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.16em;color:#d9e8f1;margin-bottom:6px
    }
    .gallery-card .caption h3{font-size:1.9rem;margin:0}
    .gallery-card.tall{grid-row:span 2}
    .gallery-stack{display:grid;gap:16px}

    /* SERVICES */
    .services{padding:130px 0;background:var(--blue-mist)}
    .service-list{margin-top:60px;border-top:1px solid var(--line)}
    .service-row{
      display:grid;grid-template-columns:100px 1fr 1.2fr;
      gap:28px;padding:34px 0;border-bottom:1px solid var(--line);align-items:start
    }
    .service-row .index{font-size:.72rem;letter-spacing:.15em;color:var(--accent);padding-top:10px}
    .service-row h3{font-size:clamp(2rem,3vw,3.4rem);margin:0}
    .service-row p{color:#4c6170;max-width:560px;margin:0}


    /* FORM */
    .contact{padding:140px 0;background:var(--ivory)}
    .contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
    .contact h2{font-size:clamp(3rem,5.4vw,5.6rem);line-height:.92}
    .contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
    .field{display:flex;flex-direction:column;gap:8px}
    .field.full{grid-column:1/-1}
    label{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
    input,select,textarea{
      width:100%;border:0;border-bottom:1px solid rgba(17,17,17,.28);
      background:transparent;padding:14px 2px;outline:none;color:var(--ink)
    }
    textarea{min-height:120px;resize:vertical}
    input:focus,select:focus,textarea:focus{border-color:var(--accent)}
    /* DIFFERENCE STORY */
    .wow-difference{
      padding:150px 0;
      background:
        radial-gradient(circle at 86% 10%, rgba(23,132,194,.16), transparent 31%),
        linear-gradient(180deg, #edf6fb 0%, #dfeef7 100%);
      overflow:hidden;
    }

    .wow-difference-layout{
      display:grid;
      grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);
      gap:clamp(54px,8vw,112px);
      align-items:start;
    }

    .wow-difference-heading{
      position:sticky;
      top:124px;
    }

    .wow-title{
      margin:0;
      max-width:720px;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(2.8rem,4.5vw,4.9rem);
      line-height:.86;
      letter-spacing:-.055em;
      font-weight:400;
      text-wrap:balance;
    }

    .wow-story{
      max-width:850px;
      margin:70px 0 0;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(1.28rem,2vw,1.68rem);
      line-height:1.72;
      letter-spacing:-.012em;
      color:#354c5d;
      text-wrap:pretty;
      hyphens:auto;
    }

    .wow-story::first-letter{
      float:left;
      margin:.08em .12em 0 0;
      color:var(--accent);
      font-size:4.15em;
      line-height:.72;
    }

    .about-founder-panel{
      align-self:start;
      max-width:390px;
    }

    .about-founder-photo{
      width:100%;
      aspect-ratio:4/4.45;
      overflow:hidden;
      border-radius:24px;
      background:var(--blue-soft);
      box-shadow:0 20px 48px rgba(8,47,82,.13);
      margin-bottom:26px;
    }

    .about-founder-photo img{
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center 38%;
      filter:grayscale(100%) contrast(1.03);
    }

    .about-founder-content{min-width:0}

    .about-founder-kicker{
      margin-bottom:10px;
      font-size:.7rem;
      text-transform:uppercase;
      letter-spacing:.16em;
      color:var(--accent);
      font-weight:800;
    }

    .about-founder-panel h3{
      margin:0 0 14px;
      color:var(--blue-deep);
      font-size:clamp(1.7rem,2.4vw,2.45rem);
      line-height:1;
    }

    .about-founder-panel p{
      max-width:390px;
      margin:0;
      color:#405665;
      line-height:1.68;
      font-size:.96rem;
    }


    /* BRAND DEFINITION */
    .brand-definition{
      padding:110px 0;
      background:var(--ivory);
      text-align:center;
    }
    .brand-definition-inner{
      max-width:1050px;
      margin:auto;
    }
    .brand-definition h2{
      font-size:clamp(2.7rem,5vw,5.2rem);
      line-height:.92;
      margin:0;
    }


    @media(max-width:680px){
      .brand-definition{padding:90px 0}
    }


    /* DMC B2B */
    .dmc-section{
      padding:130px 0;
      background:linear-gradient(135deg,#e3f0f8 0%,#f5fafd 58%,#d9eaf5 100%);
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
    }

    .dmc-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:90px;
      align-items:start;
    }

    .dmc-subtitle{
      max-width:670px;
      margin:0;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(1.55rem,2.7vw,2.7rem);
      line-height:1.15;
      color:#17344b;
    }

    .dmc-core{
      margin:28px 0 0;
      font-size:1.05rem;
      line-height:1.7;
      color:#415867;
      max-width:650px;
    }

    .dmc-btn{
      background:var(--blue);
      color:white;
      border-color:var(--blue);
    }

    .dmc-btn:hover{
      background:var(--blue-deep);
      border-color:var(--blue-deep);
    }

    @media(max-width:980px){
      .dmc-grid{grid-template-columns:1fr;gap:44px}
    }

    @media(max-width:680px){
      .dmc-section{padding:90px 0}
      .dmc-subtitle{font-size:1.65rem}
    }


    @media(max-width:980px){
      .wow-difference-layout{grid-template-columns:1fr;gap:44px}
      .wow-difference-heading{position:static}
      .wow-story{margin-top:0;max-width:820px}
      .positioning-grid{grid-template-columns:1fr;gap:38px}
      .about-main{order:1}
      .about-founder-panel{order:2;max-width:100%}
      .about-founder-photo{max-width:340px}
    }

    @media(max-width:680px){
      .wow-difference{padding:92px 0}
      .about-eyebrow{margin-bottom:22px}
      .about-founder-photo{max-width:100%;border-radius:20px}
      .about-founder-panel p{font-size:.94rem}
      .wow-title{font-size:clamp(2.65rem,11vw,4.15rem)}
      .wow-story{font-size:1.12rem;line-height:1.72}
      .wow-story::first-letter{font-size:3.75em}
    }

    /* CONTACT FORM UX */
    .contact-intro{
      position:sticky;
      top:120px;
      align-self:start;
    }

    .contact-promise{
      display:grid;
      grid-template-columns:42px 1fr;
      gap:14px;
      align-items:center;
      padding:16px 0;
      border-top:1px solid var(--line);
    }

    .contact-promise:last-child{border-bottom:1px solid var(--line)}

    .contact-promise span{
      font-size:.68rem;
      letter-spacing:.13em;
      color:var(--accent);
      font-weight:800;
    }

    .contact-promise p{
      margin:0;
      font-family:Georgia,"Times New Roman",serif;
      font-size:1.18rem;
    }

    .form-shell{
      background:rgba(255,255,255,.82);
      border:1px solid rgba(17,17,17,.09);
      border-radius:28px;
      padding:34px;
      box-shadow:0 24px 70px rgba(8,47,82,.10);
      backdrop-filter:blur(10px);
    }

    .form-progress{
      display:flex;
      align-items:end;
      justify-content:space-between;
      gap:20px;
      padding-bottom:26px;
      margin-bottom:8px;
      border-bottom:1px solid var(--line);
    }

    .form-progress-kicker{
      text-transform:uppercase;
      letter-spacing:.14em;
      font-size:.66rem;
      color:var(--accent);
      font-weight:800;
    }

    .form-progress strong{
      font-family:Georgia,"Times New Roman",serif;
      font-size:1.35rem;
      font-weight:400;
    }

    .form-section-title{
      display:grid;
      grid-template-columns:42px 1fr;
      gap:14px;
      align-items:start;
      margin:26px 0 8px;
      padding-top:18px;
      border-top:1px solid var(--line);
    }

    .form-section-title:first-of-type{
      border-top:0;
      padding-top:6px;
    }

    .form-section-title > span{
      width:32px;height:32px;border-radius:50%;
      display:grid;place-items:center;
      background:var(--ink);color:white;
      font-size:.66rem;letter-spacing:.08em;
    }

    .form-section-title strong{
      display:block;
      font-family:Georgia,"Times New Roman",serif;
      font-size:1.45rem;
      font-weight:400;
      margin-bottom:4px;
    }

    .form-section-title small{
      display:block;
      color:var(--muted);
      line-height:1.45;
      max-width:560px;
    }

    .contact-form{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:18px;
    }

    .contact-form .field{
      background:var(--paper);
      border:1px solid rgba(17,17,17,.12);
      border-radius:14px;
      padding:16px 18px 10px;
      gap:4px;
      transition:.22s ease;
    }

    .contact-form .field:focus-within{
      border-color:var(--blue);
      box-shadow:0 0 0 3px rgba(25,63,90,.08);
      transform:translateY(-1px);
    }

    .contact-form .field.full{
      grid-column:1/-1;
    }

    .contact-form label{
      color:#4b4742;
      font-size:.64rem;
      margin-bottom:2px;
    }

    .contact-form input,
    .contact-form select,
    .contact-form textarea{
      border:0;
      padding:9px 0 7px;
      background:transparent;
      font-size:1rem;
    }

    .contact-form textarea{
      min-height:145px;
      line-height:1.55;
    }

    .contact-form input::placeholder,
    .contact-form textarea::placeholder{
      color:#a39b91;
    }

    .consent-field{
      background:transparent !important;
      border:0 !important;
      padding:4px 0 !important;
      box-shadow:none !important;
      transform:none !important;
    }

    .consent-label{
      display:flex;
      align-items:flex-start;
      gap:10px;
      cursor:pointer;
      text-transform:none;
      letter-spacing:0;
      font-size:.76rem !important;
      line-height:1.5;
      font-weight:400;
      color:var(--muted) !important;
    }

    .consent-label input{
      width:18px;height:18px;margin-top:2px;accent-color:var(--ink);
      flex:0 0 auto;
    }

    .form-submit-row{
      border:0 !important;
      background:transparent !important;
      padding:8px 0 0 !important;
      display:flex !important;
      flex-direction:row !important;
      align-items:center;
      gap:18px !important;
      box-shadow:none !important;
      transform:none !important;
    }

    .form-submit{
      min-width:260px;
      border:0;
    }

    .form-submit[disabled]{
      opacity:.6;
      cursor:wait;
      transform:none !important;
    }

    .submit-reassurance{
      font-size:.72rem;
      line-height:1.45;
      color:var(--muted);
      max-width:300px;
    }

    .form-status{
      min-height:22px;
      font-size:.83rem;
      line-height:1.5;
      margin-top:2px;
      display:none;
    }

    .form-status.visible{display:block}
    .form-status.success{color:#22643b}
    .form-status.error{color:#9b3025}

    .field.invalid{
      border-color:#b33a2d !important;
      box-shadow:0 0 0 3px rgba(179,58,45,.08) !important;
    }

    .field-error{
      display:none;
      margin:4px 0 2px;
      color:#9b3025;
      font-size:.72rem;
      line-height:1.4;
    }

    .field.invalid .field-error{display:block}

    .honeypot{
      position:absolute !important;
      left:-9999px !important;
      width:1px !important;
      height:1px !important;
      overflow:hidden !important;
    }

    @media(max-width:980px){
      .contact-intro{position:static}
    }

    @media(max-width:680px){
      .form-shell{padding:22px 16px;border-radius:20px}
      .contact-form{grid-template-columns:1fr}
      .contact-form .field.full{grid-column:auto}
      .form-progress{align-items:start;flex-direction:column}
      .form-submit-row{flex-direction:column !important;align-items:stretch !important}
      .form-submit{width:100%;min-width:0}
      .submit-reassurance{max-width:none}
    }

    /* FOOTER */
    footer{
      background:var(--blue-deep);
      color:white;
      padding:64px 0 54px;
    }

    .footer-grid{
      display:grid;
      grid-template-columns:minmax(280px, .8fr) auto;
      gap:64px;
      align-items:end;
    }

    .footer-brand{
      width:min(410px, 100%);
      margin:0;
      padding:0;
      border:0;
      background:transparent;
      box-shadow:none;
      border-radius:0;
    }

    .footer-brand img{
      width:100%;
      height:auto;
      display:block;
      object-fit:contain;
    }

    .footer-copy{
      color:rgba(255,255,255,.52);
      font-size:.78rem;
      margin-top:18px;
      letter-spacing:.02em;
    }

    .footer-nav{
      display:flex;
      flex-wrap:wrap;
      justify-content:flex-end;
      gap:20px;
      font-size:.7rem;
      text-transform:uppercase;
      letter-spacing:.12em;
      color:rgba(255,255,255,.7);
    }


    .footer-legal{
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      gap:5px;
      margin-top:24px;
      color:rgba(255,255,255,.58);
      font-size:.68rem;
      line-height:1.5;
      letter-spacing:.055em;
      text-transform:uppercase;
    }

    .footer-legal strong{
      color:rgba(255,255,255,.86);
      font-size:.72rem;
      letter-spacing:.09em;
    }

    /* REVEAL — hidden only when JavaScript is available. */
    .reveal{opacity:1;transform:none}
    .js .reveal{opacity:0;transform:translateY(24px);transition:.7s ease}
    .js .reveal.visible{opacity:1;transform:none}

    @media(max-width:980px){
      .nav-links{display:none}
      .menu-toggle{display:inline-flex}

      .mobile-nav:not([hidden]){
        position:fixed;
        inset:0;
        z-index:1;
        display:flex;
        align-items:center;
        background:var(--ivory);
        color:var(--ink);
        padding:112px 0 48px;
        overflow-y:auto;
      }

      .nav{position:relative;z-index:2}
      .site-header.menu-active{background:var(--ivory);border-bottom:1px solid var(--line)}

      .mobile-nav-inner{
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:22px;
      }

      .mobile-nav a{
        font-family:Georgia,"Times New Roman",serif;
        font-size:clamp(2.15rem,8vw,4.8rem);
        line-height:1;
        letter-spacing:-.04em;
      }

      .hero-inner,
      .positioning-grid,
      .unlock-head,
      .contact-grid{grid-template-columns:1fr}
      .hero-inner{gap:34px}
      .hero .hero-copy{margin-left:0}
      .gallery{grid-template-columns:1fr 1fr;min-height:auto}
      .gallery-card.tall{grid-row:auto;grid-column:1/-1;min-height:520px}
      .service-row{grid-template-columns:60px 1fr}
      .service-row p{grid-column:2}
    }

    @media(max-width:680px){
      .wrap,.nav{width:min(100% - 24px,var(--max))}
      .site-header{padding:12px 0}
      .nav-controls{gap:10px}
      .brand-descriptor{display:none}
      .brand-symbol{width:38px;height:34px}
      .brand-name{font-size:.78rem;letter-spacing:.10em}
      .hero-inner{padding:135px 0 42px}
      .hero h1{font-size:clamp(3.6rem,18vw,5.8rem)}
      .positioning,.unlock,.services,.contact{padding:90px 0}
      .gallery{grid-template-columns:1fr}
      .gallery-card.tall{grid-column:auto;min-height:420px}
      .gallery-stack{display:contents}
      .service-row{grid-template-columns:40px 1fr;gap:16px}
      .footer-grid{grid-template-columns:1fr;gap:36px}
      .footer-nav{justify-content:flex-start}
    }

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

/* Brand palette refinement */
.positioning h2, .unlock h2, .services h2, .dmc-section h2, .wow-difference h2, .contact h2, .brand-definition h2{color:var(--blue-deep)}
.services h3, .gallery-card h3, .dmc-subtitle{color:var(--blue-deep)}
.site-header.scrolled .brand-name, .site-header.scrolled .brand-descriptor{color:var(--blue)}


/* Legal pages */
.legal-page{background:var(--paper);min-height:100vh;color:var(--ink)}
.legal-header{padding:34px 0;border-bottom:1px solid var(--line);background:rgba(246,250,253,.96)}
.legal-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.legal-brand{font-family:Georgia,"Times New Roman",serif;font-size:1.05rem;letter-spacing:.12em;color:var(--blue);font-weight:700}
.legal-back{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--blue);font-weight:700}
.legal-main{padding:90px 0 110px}
.legal-content{max-width:920px;margin:0 auto}
.legal-kicker{font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:var(--blue);font-weight:800;margin-bottom:18px}
.legal-content h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6vw,5.8rem);line-height:.92;margin:0 0 26px;font-weight:400}
.legal-updated{color:var(--muted);font-size:.85rem;margin-bottom:54px}
.legal-content h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.7rem,3vw,2.6rem);margin:46px 0 14px;font-weight:400}
.legal-content h3{font-size:1rem;margin:28px 0 8px}
.legal-content p,.legal-content li{font-size:1rem;line-height:1.75;color:#4d4944}
.legal-content ul{padding-left:1.25rem}
.legal-note{margin-top:54px;padding:22px 24px;border:1px solid rgba(12,64,111,.16);background:var(--blue-mist);border-radius:16px}
.legal-footer{padding:34px 0;background:var(--deep-blue);color:white}
.legal-footer p{margin:0;color:rgba(255,255,255,.7);font-size:.78rem;line-height:1.6}
.consent-label a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
@media(max-width:680px){.legal-main{padding:64px 0 80px}.legal-header-inner{align-items:flex-start;flex-direction:column;gap:10px}.legal-content h1{font-size:clamp(2.7rem,13vw,4.3rem)}}


/* PRIVACY + LEGAL LINKS */
.privacy-consent-copy{
  display:inline;
  text-transform:none;
  letter-spacing:0;
  font-size:.76rem;
  line-height:1.55;
  font-weight:400;
  color:var(--muted);
}
.privacy-inline-link{
  color:var(--blue);
  font-weight:700;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.privacy-inline-link:hover{opacity:.72}

.footer-nav a[href="privacy.html"],
.footer-nav a[href="cookie-policy.html"]{
  opacity:.9;
}

.legal-language{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:.72rem;
  letter-spacing:.1em;
  font-weight:800;
}
.legal-language button{
  border:0;
  background:transparent;
  color:inherit;
  padding:3px 0;
  cursor:pointer;
  opacity:.48;
  font:inherit;
}
.legal-language button.active{opacity:1}
.legal-tools{
  display:flex;
  align-items:center;
  gap:24px;
}
.legal-content [data-legal-lang][hidden]{display:none !important}
.legal-footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:16px;
}
.legal-footer-links a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}
@media(max-width:680px){
  .legal-tools{gap:14px}
  .legal-header-inner{align-items:flex-start}
}

/* November editorial update: same identity, clearer hierarchy and exploration. */
.hero{background-position:center;background-size:cover}
.hero-inner{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:56px;padding-bottom:74px}
.hero h1{font-size:clamp(4rem,7.4vw,7.6rem);line-height:.91;letter-spacing:-.045em}
.hero h1 span{white-space:nowrap}
.hero-title-final{font-style:italic;font-weight:400;color:#e0eff8}
.hero-copy{padding-bottom:6px}
.hero .hero-copy p{font-size:1.08rem;line-height:1.6;color:#fff}
.hero-actions{gap:12px}
.hero-actions .btn.dark{background:#fff;border-color:#fff;color:var(--blue-deep)}
.hero-actions .btn.dark:hover{background:var(--blue-soft);border-color:var(--blue-soft)}
.hero-actions .btn{min-height:54px}
.hero-actions .btn.light{background:rgba(8,47,82,.2)}
.dmc-section{padding:94px 0}
.dmc-section .section-title{max-width:580px}
.dmc-core{font-size:.98rem}
.dmc-btn{margin-top:30px}
.service-row h3{font-size:clamp(1.7rem,2.8vw,2.8rem);line-height:1.06}
.service-row{grid-template-columns:60px 1.05fr 1fr}
.experience-gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:350px 350px;gap:18px;margin-top:50px}
.experience-card{appearance:none;position:relative;display:block;isolation:isolate;overflow:hidden;border:0;border-radius:var(--radius);padding:0;min-width:0;min-height:0;text-align:left;color:#fff;background:var(--blue-deep);cursor:pointer;box-shadow:0 15px 38px rgba(8,47,82,.09)}
.experience-card-featured{grid-row:span 2}
.experience-card img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.experience-card:after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(180deg,rgba(5,24,41,.13) 0%,rgba(5,24,41,.08) 20%,rgba(5,24,41,.78) 65%,rgba(5,24,41,.94) 100%);pointer-events:none}
.experience-card[data-experience="art"] img{object-position:center 48%}
.experience-card-content{position:absolute;inset:0;z-index:1;padding:25px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end}
.experience-card-top{position:absolute;inset:20px 22px auto;display:flex;align-items:center;justify-content:space-between;font-size:.7rem;letter-spacing:.12em}
.experience-open{display:grid;place-items:center;width:39px;height:39px;border:1px solid rgba(255,255,255,.64);border-radius:50%;transition:background .25s,color .25s}
.experience-open svg{display:block;width:22px;height:22px}
.experience-card h3{color:#fff;font-size:clamp(1.65rem,2.25vw,2rem);letter-spacing:-.025em;line-height:1.06;margin:0 0 13px}
.experience-card-featured h3{font-size:clamp(2.2rem,3.4vw,3.2rem);max-width:330px}
.experience-preview{font-size:.88rem;line-height:1.5;color:#fff;max-width:380px}
.experience-discover{display:block;margin-top:17px;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:3px;text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;font-weight:700}
.experience-card:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.experience-card:focus-visible .experience-open{background:white;color:var(--blue)}
@media(hover:hover){.experience-card:hover img{transform:scale(1.045)}.experience-card:hover .experience-open{background:#fff;color:var(--blue)}}
body.experience-open{overflow:hidden}
.experience-dialog{padding:0;width:min(1080px,calc(100vw - 64px));max-width:none;max-height:90svh;border:0;border-radius:24px;overflow:auto;background:var(--paper);color:var(--ink);box-shadow:0 32px 100px rgba(0,12,30,.3)}
.experience-dialog::backdrop{background:rgba(3,23,41,.76);backdrop-filter:blur(6px)}
.experience-dialog[open]{animation:dialog-arrive .25s ease-out}
.experience-dialog-layout{display:grid;grid-template-columns:.85fr 1.15fr;min-height:610px}
.experience-dialog-photo{position:relative;overflow:hidden;background:var(--blue-soft)}
.experience-dialog-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.experience-dialog-photo img[data-detail-src*="/nature-client-"]{object-position:center 25%}
.experience-dialog-copy{padding:64px 48px 45px}
.experience-dialog-copy h2{font-size:clamp(2.3rem,3.5vw,3.6rem);line-height:1;letter-spacing:-.035em;color:var(--blue-deep);margin-bottom:30px}
.experience-dialog-description p{font-size:1rem;line-height:1.75;color:#354e60;margin-bottom:20px}
.experience-dialog-note{border-top:1px solid var(--line);padding-top:19px;font-size:.83rem;line-height:1.6;color:var(--muted);margin:24px 0}
.experience-dialog-copy .btn{padding:13px 20px;font-size:.64rem;min-height:52px}
.experience-close{position:absolute;z-index:5;right:14px;top:14px;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--blue-deep);font-size:1.8rem;line-height:1;cursor:pointer;box-shadow:0 4px 15px rgba(8,47,82,.1)}
.experience-close:hover{background:var(--blue-soft)}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.positioning h2{font-size:clamp(2.5rem,4.1vw,4.1rem);line-height:.98}
.manifesto strong{display:block;font-size:.83em}
.legal-footer{background:var(--blue-deep)}
.contact-form .form-section-title{grid-column:1/-1}
.credits-list li{margin-bottom:22px}

@media(max-width:1100px){
 .hero-inner{grid-template-columns:1.2fr .8fr;gap:34px}
 .hero h1{font-size:6.8vw}
 .experience-card-content{padding:21px}
 .experience-gallery{grid-template-rows:365px 365px}
 .experience-preview{font-size:.83rem}
}
@media(max-width:980px){
 .hero-inner{grid-template-columns:1fr;gap:30px;padding-top:150px;padding-bottom:55px}
 .hero h1{font-size:clamp(3.4rem,8.8vw,6.7rem)}
 .hero .hero-copy{max-width:600px;margin:0}
 .hero-actions{flex-wrap:wrap}
 .experience-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}
 .experience-card{min-height:350px}
 .experience-card-featured{grid-row:auto;grid-column:1/-1;min-height:450px}
 .experience-card-featured img{object-position:center 45%}
 .experience-dialog-layout{grid-template-columns:1fr;min-height:0}
 .experience-dialog-photo{height:280px}
 .experience-dialog-copy{padding:36px}
 .service-row{grid-template-columns:50px 1fr}
 .wow-story{margin-top:0}
}
@media(max-width:680px){
 .hero{min-height:100svh}
 .hero-inner{padding:130px 0 40px;gap:25px}
 .hero h1{font-size:clamp(2.65rem,12.4vw,4.6rem);line-height:.96;letter-spacing:-.045em}
 .hero .eyebrow{font-size:.6rem;letter-spacing:.15em;margin-bottom:23px}
 .hero .hero-copy p{font-size:.98rem;line-height:1.6;margin-bottom:23px}
 .hero-actions{display:grid;grid-template-columns:1fr;gap:11px;max-width:390px}
 .hero-actions .btn{min-height:51px;font-size:.64rem;letter-spacing:.12em;padding:0 16px}
 .dmc-section{padding:76px 0}
 .dmc-section .section-title{font-size:clamp(2.7rem,12vw,3.5rem)}
 .dmc-grid{gap:28px}
 .dmc-subtitle{font-size:1.5rem}
 .experience-gallery{grid-template-columns:1fr;gap:18px;margin-top:30px}
 .experience-card,.experience-card-featured{grid-column:auto;min-height:335px}
 .experience-card-featured{min-height:400px}
 .experience-card h3,.experience-card-featured h3{font-size:2rem;max-width:100%}
 .experience-card-content{padding:25px}
 .experience-preview{font-size:.93rem}
 .experience-dialog{width:calc(100vw - 20px);max-height:94svh;border-radius:18px}
 .experience-dialog-photo{height:225px}
 .experience-dialog-copy{padding:29px 25px 30px}
 .experience-dialog-copy .eyebrow{font-size:.6rem}
 .experience-dialog-copy h2{font-size:2.25rem;margin-bottom:23px}
 .experience-dialog-copy .btn{width:100%;font-size:.6rem}
 .experience-dialog-description p{font-size:.95rem;line-height:1.65}
 .positioning h2{font-size:2.8rem}
 .service-row{grid-template-columns:32px minmax(0,1fr);gap:14px}
 .service-row h3{font-size:2rem}
 .contact h2{font-size:clamp(2.6rem,11.5vw,3.5rem);line-height:1}
}
@media(prefers-reduced-motion:reduce){
 .experience-dialog[open]{animation:none}
 .experience-card img,.experience-open{transition:none}
 .experience-card:hover img{transform:none}
}
