  @import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

  :root{
    --paper: #F5F7F5;
    --surface: #FFFFFF;
    --surface-alt: #EBF1EE;
    --ink: #142420;
    --ink-soft: #45564F;
    --ink-faint: #6E7D77;
    --line: #D8E2DD;
    --accent: #146B62;
    --accent-strong: #0C4A44;
    --accent-soft: #E4EFEC;
    --gold: #A97C3E;
    --gold-strong: #8C6530;
    --warn: #A6423B;
    --warn-soft: #F5E4E2;
    --shadow: 20 40 35;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper: #0E1715;
      --surface: #15211E;
      --surface-alt: #1B2926;
      --ink: #EAF2EF;
      --ink-soft: #B9C8C3;
      --ink-faint: #8AA098;
      --line: #263A35;
      --accent: #5FC8B9;
      --accent-strong: #82DBCC;
      --accent-soft: #1E3833;
      --gold: #D6A863;
      --gold-strong: #E8BE82;
      --warn: #E08A82;
      --warn-soft: #3A2220;
    }
  }
  :root[data-theme="dark"]{
    --paper: #0E1715;
    --surface: #15211E;
    --surface-alt: #1B2926;
    --ink: #EAF2EF;
    --ink-soft: #B9C8C3;
    --ink-faint: #8AA098;
    --line: #263A35;
    --accent: #5FC8B9;
    --accent-strong: #82DBCC;
    --accent-soft: #1E3833;
    --gold: #D6A863;
    --gold-strong: #E8BE82;
    --warn: #E08A82;
    --warn-soft: #3A2220;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:84px;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans', -apple-system, "Segoe UI", Roboto, sans-serif;
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;}
  a{color:var(--accent);}
  :focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

  .font-display{font-family:'Source Serif 4', Georgia, 'Times New Roman', serif;}
  .font-mono{font-family:'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;}

  h1,h2,h3{font-family:'Source Serif 4', Georgia, serif; font-weight:600; margin:0; text-wrap:balance; color:var(--ink);}
  p{margin:0;}

  .skip-link{
    position:absolute; left:-999px; top:auto;
    background:var(--accent); color:#fff; padding:.6em 1em; border-radius:4px; z-index:200;
  }
  .skip-link:focus{ left:1rem; top:1rem; }

  .wrap{max-width:1120px; margin:0 auto; padding-inline:clamp(1.25rem, 4vw, 2.5rem);}
  .band{border-top:1px solid var(--line);}
  .band-alt{background:var(--surface-alt);}

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--accent);
    display:flex; align-items:center; gap:.6em;
  }
  .eyebrow::before{content:""; width:1.4em; height:1px; background:var(--accent); display:inline-block;}

  /* ---------- topbar ---------- */
  .topbar{background:var(--accent-strong); color:#fff;}
  .topbar .wrap{
    display:flex; justify-content:flex-end; gap:1.5rem; align-items:center;
    padding-block:.5rem; font-size:.78rem;
  }
  .topbar a{color:#fff; text-decoration:none; opacity:.9;}
  .topbar a:hover{opacity:1; text-decoration:underline;}
  @media (max-width:700px){ .topbar{display:none;} }

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background: color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding-block:.9rem;
    gap:1.5rem;
  }
  .brand{
    display:flex; flex-direction:column; line-height:1.1;
    font-family:'Source Serif 4', serif; font-weight:600; font-size:1.08rem;
    text-decoration:none; color:var(--ink);
  }
  .brand small{
    font-family:'IBM Plex Mono', monospace; font-weight:400; font-size:.65rem;
    letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:.2em;
  }
  nav.primary{display:flex; align-items:center; gap:2rem;}
  nav.primary ul{list-style:none; display:flex; gap:1.7rem; margin:0; padding:0;}
  nav.primary a{color:var(--ink-soft); text-decoration:none; font-size:.94rem;}
  nav.primary a:hover{color:var(--accent);}
  .nav-link[aria-current="page"]{color:var(--accent); font-weight:600;}
  .header-actions{display:flex; align-items:center; gap:1.1rem;}
  .tel-link{
    font-family:'IBM Plex Mono', monospace; font-size:.88rem; color:var(--ink-soft); text-decoration:none;
    white-space:nowrap;
  }
  .btn{
    display:inline-flex; align-items:center; gap:.5em;
    font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:.9rem;
    padding:.65em 1.25em; border-radius:3px; text-decoration:none; white-space:nowrap;
    border:1px solid transparent;
  }
  .btn-primary{background:var(--accent); color:#fff;}
  .btn-primary:hover{background:var(--accent-strong);}
  .btn-gold{background:var(--gold); color:#fff;}
  .btn-gold:hover{background:var(--gold-strong);}
  .btn-outline{border-color:var(--line); color:var(--ink);}
  .btn-outline:hover{border-color:var(--accent); color:var(--accent);}


  @media (max-width: 860px){
    .tel-link{display:none;}
    .nav-row{flex-wrap:wrap; row-gap:.7rem;}
    nav.primary ul{gap:1.1rem;}
  }

  /* ---------- hero ---------- */
  .hero{padding-block: clamp(3rem, 8vw, 5.5rem);}
  .hero-grid{
    display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 4rem);
    align-items:center;
  }
  @media (max-width: 900px){ .hero-grid{grid-template-columns:1fr;} }

  .hero h1{font-size:clamp(2.5rem, 5vw, 4.1rem); line-height:1.05; letter-spacing:-.015em;}
  .hero .lede{
    margin-top:1.3rem; font-family:'Source Serif 4', serif; font-size:1.22rem; line-height:1.5;
    color:var(--ink-soft); max-width:46ch;
  }
  .hero .cta-row{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem;}
  .hero .location-line{
    margin-top:2rem; font-family:'IBM Plex Mono', monospace; font-size:.85rem; letter-spacing:.02em;
    color:var(--ink-soft);
    display:flex; align-items:center; gap:.6em;
  }

  .hero-figure{
    border-radius:6px; overflow:hidden; border:1px solid var(--line); background:var(--surface-alt);
    aspect-ratio:4/5; position:relative;
  }
  .hero-figure img{width:100%; height:100%; object-fit:cover; display:block;}
  .carousel-track{position:relative; width:100%; height:100%;}
  .carousel-slide{position:absolute; inset:0; opacity:0; transition:opacity .7s ease;}
  .carousel-slide.is-active{opacity:1;}
  .carousel-dots{
    position:absolute; bottom:.9rem; left:0; right:0; z-index:2;
    display:flex; justify-content:center; gap:.5rem;
  }
  .carousel-dots .dot{
    width:8px; height:8px; padding:0; border:none; border-radius:50%;
    background:rgba(255,255,255,.55); cursor:pointer;
  }
  .carousel-dots .dot.is-active{background:#fff;}
  @media (prefers-reduced-motion: reduce){ .carousel-slide{transition:none;} }

  /* ---------- trust strip ---------- */
  .trust{padding-block:1.4rem;}
  .trust ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-wrap:wrap; gap:1rem 2.2rem; justify-content:space-between;
  }
  .trust li{
    font-size:.86rem; color:var(--ink-soft); display:flex; align-items:center; gap:.55em;
    white-space:nowrap;
  }
  .trust li::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--gold); flex:none;}

  .home-links{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;}
  @media (max-width:820px){ .home-links{grid-template-columns:1fr;} }
  .home-links .service-card{
    background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:1.6rem;
  }
  .home-links .service-card h3{font-size:1.15rem; margin:0;}
  .home-links .service-card p{color:var(--ink-soft); font-size:.94rem; margin-top:.6rem;}
  .home-links a.more{
    display:inline-block; margin-top:.9rem; font-family:'IBM Plex Mono',monospace; font-size:.8rem;
    color:var(--accent); text-decoration:none;
  }
  .home-links a.more:hover{text-decoration:underline;}

  /* ---------- section heads ---------- */
  section{padding-block:clamp(3rem, 7vw, 5rem);}
  .section-head{max-width:62ch; margin-bottom:2.6rem;}
  .section-head h2{font-size:clamp(1.7rem, 3vw, 2.35rem); margin-top:.6rem;}
  .section-head p{color:var(--ink-soft); margin-top:.9rem; font-size:1.02rem;}

  .blog-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1.4rem; margin-top:2rem; }
  .blog-card{
    background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:1.6rem;
    display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:border-color .15s ease;
  }
  .blog-card:hover{ border-color:var(--accent); }
  .blog-card h3{ font-family:'Source Serif 4', serif; font-weight:700; font-size:1.25rem; color:var(--ink); margin:.6rem 0 0; }
  .blog-card p{ margin-top:.6rem; font-size:.95rem; color:var(--ink-soft); line-height:1.5; flex:1; }
  .blog-card .more{
    display:inline-block; margin-top:1.1rem; font-family:'IBM Plex Mono', monospace; font-size:.8rem; color:var(--accent);
  }
  .blog-card:hover .more{ text-decoration:underline; }
  .blog-empty{
    border:1px dashed var(--line); border-radius:6px; padding:2.6rem 2rem; text-align:center;
  }
  .blog-empty p{color:var(--ink-soft); margin-bottom:1.1rem; font-size:1rem;}

  /* ---------- testimonianze ---------- */
  .stat-row{display:flex; align-items:center; gap:2.2rem; margin-top:2rem; flex-wrap:wrap;}
  .stat-number{
    font-family:'Source Serif 4', serif; font-weight:600; font-size:7rem; line-height:.9; color:var(--accent);
    letter-spacing:-.02em;
  }
  .stat-copy p{color:var(--ink-soft); font-size:1.02rem; max-width:42ch;}
  .stat-copy a.more{
    display:inline-block; margin-top:.7rem; font-family:'IBM Plex Mono', monospace; font-size:.82rem;
    color:var(--accent); text-decoration:none;
  }
  .stat-copy a.more:hover{text-decoration:underline;}
  .reviews-grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:1.4rem; margin-top:2.6rem;
  }
  @media (max-width:820px){ .reviews-grid{grid-template-columns:1fr;} }
  .review-card{
    background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:1.5rem; margin:0;
  }
  .review-card p{
    font-family:'Source Serif 4', serif; font-style:italic; font-size:1.02rem; line-height:1.5; color:var(--ink);
  }
  .review-card cite{
    display:block; margin-top:1rem; font-family:'IBM Plex Mono', monospace; font-style:normal; font-size:.76rem;
    letter-spacing:.02em; color:var(--ink-faint);
  }
  .review-card cite .stars{ color:var(--gold); letter-spacing:.1em; margin-right:.5em; }
  .review-card cite strong{ color:var(--ink); font-weight:600; }
  .review-card cite a{ color:var(--ink-faint); text-decoration:underline; text-underline-offset:2px; }
  .review-card cite a:hover{ color:var(--accent); }

  /* ---------- accent emphasis ---------- */
  .accent-em{
    font-family:'Source Serif 4', serif; font-style:italic; font-weight:600; color:var(--accent-strong);
  }
  .dropcap::first-letter{
    font-family:'Source Serif 4', serif; font-weight:700; color:var(--accent);
    float:left; font-size:4.4em; line-height:.76; padding-right:.09em; margin-top:.02em;
  }

  /* ---------- chi sono ---------- */
  .about-copy{max-width:68ch;}
  .about-copy p{color:var(--ink-soft); font-size:1.03rem;}
  .about-copy p + p{margin-top:1.1rem;}
  .about-copy .name-line{
    font-family:'Source Serif 4', serif; font-weight:600; font-size:1.5rem; color:var(--ink); margin-bottom:1rem;
  }
  .about-copy .credential-line{
    font-family:'IBM Plex Mono', monospace; font-size:.78rem; letter-spacing:.02em; color:var(--ink-faint);
  }
  .about-quote{
    margin:2.4rem 0 0; padding:0;
  }
  .about-quote::before{
    content:"“"; display:block; font-family:'Source Serif 4', serif; font-size:5.6rem;
    line-height:1; color:var(--gold); opacity:.95; margin-bottom:-.6rem;
  }
  .about-quote p{
    font-family:'Source Serif 4', serif; font-style:italic; font-size:1.85rem; line-height:1.32; color:var(--ink);
    max-width:22ch;
  }
  .about-quote cite{
    display:block; margin-top:.7rem; font-family:'IBM Plex Mono', monospace; font-style:normal;
    font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-faint);
  }

  /* ---------- percorso ---------- */
  .path-list{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem;
    position:relative;
  }
  @media (max-width:900px){ .path-list{grid-template-columns:1fr; gap:0;} }
  .path-step{
    padding-top:1.4rem; border-top:2px solid var(--line);
  }
  @media (max-width:900px){
    .path-step{
      padding-top:0; padding-left:1.8rem; padding-bottom:1.8rem;
      border-top:none; border-left:2px solid var(--line);
    }
    .path-step:last-child{padding-bottom:0;}
  }
  .path-step .num{
    font-family:'Source Serif 4', serif; font-weight:700; font-size:3.6rem; line-height:.85;
    color:var(--accent); display:block; margin-bottom:.6rem; letter-spacing:-.02em;
  }
  .path-step h3{font-size:1.4rem; font-weight:700; letter-spacing:-.01em; line-height:1.15; margin-top:0;}
  .path-step p{
    font-family:'Source Serif 4', serif; color:var(--ink-soft); font-size:1.06rem; line-height:1.48; margin-top:.6rem;
  }

  /* ---------- servizi ---------- */
  .hot-tags{ display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
  .hot-tags .page-link{
    display:inline-flex; align-items:center; padding:.6em 1.15em; border-radius:999px;
    background:var(--gold); color:#fff; font-family:'Source Serif 4', serif; font-weight:600;
    font-size:.98rem; text-decoration:none; line-height:1.1;
  }
  .hot-tags .page-link:hover{ background:var(--gold-strong); }

  .service-detail{ max-width:700px; }
  .service-detail .back-link{
    display:inline-flex; align-items:center; gap:.4em; font-family:'IBM Plex Mono', monospace;
    font-size:.8rem; color:var(--ink-faint); text-decoration:none;
  }
  .service-detail .back-link:hover{ color:var(--accent); }
  .service-detail h1{ margin-top:.9rem; font-size:clamp(2rem,4vw,2.7rem); line-height:1.1; }
  .service-detail .lede{
    margin-top:1.3rem; font-family:'Source Serif 4', serif; font-size:1.2rem; line-height:1.55; color:var(--ink-soft);
  }
  .service-detail .lede + .lede{ margin-top:1.1rem; }
  .service-detail h2{ font-size:1.5rem; margin-top:2.6rem; line-height:1.25; }
  .service-detail h3{
    font-size:1.12rem; margin-top:1.7rem; font-family:'Source Serif 4', serif; font-weight:700; color:var(--ink);
  }
  .service-detail p.body{
    margin-top:1.1rem; font-family:'Source Serif 4', serif; font-size:1.05rem; line-height:1.55; color:var(--ink-soft);
  }
  .service-detail ul{ margin:1rem 0 0; padding-left:1.25rem; }
  .service-detail li{
    margin-top:.5rem; font-family:'Source Serif 4', serif; font-size:1.02rem; line-height:1.5; color:var(--ink-soft);
  }
  .service-detail li::marker{ color:var(--accent); }
  .service-detail p.body a, .service-detail li a{
    color:var(--accent); text-decoration:underline; text-underline-offset:2px;
  }
  .callout-warning{
    margin-top:1.8rem; padding:1.2rem 1.4rem; border:1px solid var(--warn); border-left:4px solid var(--warn);
    border-radius:6px; background:var(--warn-soft);
  }
  .callout-warning .label{
    display:block; margin-bottom:.5rem; font-family:'IBM Plex Mono', monospace; font-size:.72rem;
    letter-spacing:.06em; text-transform:uppercase; color:var(--warn);
  }
  .callout-warning p{
    font-family:'Source Serif 4', serif; font-size:1rem; line-height:1.5; color:var(--ink); margin:0;
  }
  .service-photo{
    margin-top:1.6rem; border-radius:6px; overflow:hidden; border:1px solid var(--line); background:var(--surface-alt);
  }
  .service-photo img{ width:100%; height:auto; display:block; }
  .service-detail .lede strong{ color:var(--ink); font-weight:700; }

  /* ---------- studio ---------- */
  .studio-grid{
    display:grid; grid-template-columns:1fr; max-width:640px;
  }
  .address-block dt{
    font-family:'IBM Plex Mono', monospace; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink-faint); margin-top:1.3rem;
  }
  .address-block dt:first-child{margin-top:0;}
  .address-block dd{
    margin:.35rem 0 0; font-family:'Source Serif 4', serif; font-size:1.15rem; line-height:1.4; color:var(--ink);
  }
  .hours-table{ margin-top:.4rem; max-width:280px; border-top:1px solid var(--line); }
  .hours-table .row{
    display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
    padding:.6rem 0; border-bottom:1px solid var(--line);
    font-family:'Source Serif 4', serif; font-size:1.1rem; color:var(--ink);
  }
  .hours-table .row .time{
    font-family:'IBM Plex Mono', monospace; font-size:.92rem; color:var(--ink-soft);
    font-variant-numeric:tabular-nums; white-space:nowrap;
  }
  .hours-note{ display:block; margin-top:.65rem; font-size:.85rem; color:var(--ink-faint); }
  .map-figure{
    aspect-ratio:1/1; border-radius:6px; border:1px solid var(--line); background:var(--surface-alt);
    display:flex; align-items:center; justify-content:center; overflow:hidden;
  }
  .map-figure svg{width:78%; height:78%;}
  .map-figure .pin-ping{
    transform-box:fill-box; transform-origin:center; animation:mapPing 2.4s ease-out infinite; opacity:.55;
  }
  .map-figure .pin-ping.delay{ animation-delay:1.2s; }
  @media (prefers-reduced-motion: reduce){ .map-figure .pin-ping{ animation:none; opacity:0; } }
  @keyframes mapPing{
    0%{ transform:scale(1); opacity:.55; }
    100%{ transform:scale(2.8); opacity:0; }
  }

  /* ---------- contatti ---------- */
  .contact-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem;
  }
  @media (max-width:820px){ .contact-grid{grid-template-columns:1fr;} }
  .contact-card{
    background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:1.6rem;
    display:flex; flex-direction:column; gap:.5rem;
  }
  .contact-card .icon{width:26px; height:26px; color:var(--accent); margin-bottom:.3rem;}
  .contact-card .eyebrow{margin-bottom:.3rem;}
  .contact-card a.value{
    font-family:'Source Serif 4', serif; font-weight:600; font-size:1.4rem; color:var(--ink); text-decoration:none;
  }
  .contact-card a.value:hover{color:var(--accent);}
  .contact-card p.hint{font-size:.85rem; color:var(--ink-faint);}
  .contact-cta{
    margin-top:2.6rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
    gap:1.4rem; background:var(--accent-soft); border:1px solid var(--line); border-radius:6px;
    padding:1.6rem 1.8rem;
  }
  .contact-cta p{font-family:'Source Serif 4', serif; font-size:1.2rem; max-width:34ch;}

  /* ---------- contact form ---------- */
  .contact-form{
    margin-top:2.6rem; background:var(--surface); border:1px solid var(--line); border-radius:6px;
    padding:2rem;
  }
  .contact-form h3{
    font-family:'Source Serif 4', serif; font-size:1.3rem; font-weight:700; color:var(--ink); margin:0 0 .3rem;
  }
  .contact-form .form-hint{font-size:.88rem; color:var(--ink-faint); margin-bottom:1.6rem;}
  .contact-form .form-row{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem;}
  @media (max-width:640px){ .contact-form .form-row{grid-template-columns:1fr;} }
  .contact-form label{
    display:block; font-family:'IBM Plex Mono', monospace; font-size:.72rem; letter-spacing:.06em;
    text-transform:uppercase; color:var(--ink-faint); margin-bottom:.5rem;
  }
  .contact-form .field{margin-top:1.2rem;}
  .contact-form .form-row .field{margin-top:0;}
  .contact-form input, .contact-form textarea{
    width:100%; font-family:'IBM Plex Sans', sans-serif; font-size:.96rem; color:var(--ink);
    background:var(--paper); border:1px solid var(--line); border-radius:3px; padding:.75em .9em;
  }
  .contact-form input:focus, .contact-form textarea:focus{outline:none; border-color:var(--accent);}
  .contact-form textarea{resize:vertical; min-height:8em;}
  .contact-form button{
    margin-top:1.6rem; cursor:pointer; font:inherit;
  }
  .contact-form .form-legal{font-size:.78rem; color:var(--ink-faint); margin-top:.9rem; max-width:60ch;}
  .contact-form .form-legal a{color:var(--ink-faint); text-decoration:underline; text-underline-offset:2px;}

  /* ---------- map embed ---------- */
  .map-embed{
    margin-top:2.6rem; border:1px solid var(--line); border-radius:6px; overflow:hidden;
    aspect-ratio:16/7; background:var(--surface-alt);
  }
  .map-embed iframe{width:100%; height:100%; border:0; display:block;}
  @media (max-width:640px){ .map-embed{aspect-ratio:4/3;} }

  /* ---------- footer ---------- */
  footer{padding-block:2.4rem; border-top:1px solid var(--line);}
  .footer-grid{
    display:flex; flex-wrap:wrap; justify-content:space-between; gap:1.5rem; align-items:flex-start;
  }
  .footer-brand{font-family:'Source Serif 4', serif; font-weight:600; font-size:1.05rem;}
  .footer-meta{font-size:.85rem; color:var(--ink-faint); margin-top:.4rem;}
  footer nav ul{list-style:none; display:flex; gap:1.4rem; margin:0; padding:0; flex-wrap:wrap;}
  footer nav a{color:var(--ink-soft); text-decoration:none; font-size:.88rem;}
  footer nav a:hover{color:var(--accent);}
  .linklike{
    background:none; border:none; padding:0; margin:0; cursor:pointer;
    font:inherit; color:var(--ink-soft); font-size:.88rem; text-decoration:none;
  }
  .linklike:hover{color:var(--accent);}

  /* ---------- cookie banner ---------- */
  .cookie-banner{
    position:fixed; left:0; right:0; bottom:0; z-index:50;
    background:var(--surface); border-top:1px solid var(--line);
    box-shadow:0 -4px 20px rgba(var(--shadow), .12);
  }
  .cookie-banner-inner{
    padding-block:1.4rem; display:flex; flex-wrap:wrap; align-items:center;
    justify-content:space-between; gap:1.2rem;
  }
  .cookie-banner-inner p{
    font-size:.88rem; color:var(--ink-soft); max-width:62ch; margin:0;
  }
  .cookie-banner-inner p a{color:var(--ink-soft); text-decoration:underline; text-underline-offset:2px;}
  .cookie-banner-actions{display:flex; gap:.8rem; flex-shrink:0;}
