  :root{
    --cream:#f3e9d8;
    --paper:#fffdf7;
    --white:#ffffff;
    --ink:#1c1712;
    --ink-soft:#5b4e42;
    --ink-faint:#8c7d6d;
    --heading-color:#1c1712;
    --dark-bg:#1c1512;
    --red:#a3271d;
    --btn-bg:#a3271d;
    --red-bright:#c8402f;
    --red-deep:#711c15;
    --line:rgba(28,23,18,0.14);
    --line-soft:rgba(28,23,18,0.07);
    --shadow:0 20px 40px -24px rgba(28,20,14,0.32);

    /* Font di titoli/UI e font del corpo del testo: cambiare qui aggiorna
       tutto il sito in un solo punto (vedi anche il link Google Fonts
       nell'head, in header.php). Sia i font che i colori qui sopra sono
       anche modificabili da Aspetto > Personalizza, senza toccare questo
       file: i valori scelti li' vengono scritti in un <style> generato
       da functions.php (cg_dynamic_style) che sovrascrive queste variabili. */
    --font-heading:"Fraunces", Georgia, serif;
    --font-body:"Inter", "Helvetica Neue", Arial, sans-serif;
    --font-story:"Newsreader", Georgia, serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:var(--font-body);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  h1,h2,h3{
    font-family:var(--font-heading);
    font-weight:700;
    text-wrap:balance;
    margin:0;
    color:var(--heading-color);
  }
  em{font-style:italic;color:var(--red);}
  p{margin:0;}
  a{color:inherit;}

  .eyebrow{
    font-family:var(--font-body);
    font-weight:600;
    letter-spacing:0.09em;
    text-transform:uppercase;
    font-size:0.7rem;
    color:var(--red);
  }
  .eyebrow.on-dark{color:#e7a89f;}

  section{scroll-margin-top:76px;}
  .wrap{max-width:1560px;margin:0 auto;padding-left:clamp(1.25rem,4vw,3.5rem);padding-right:clamp(1.25rem,4vw,3.5rem);}
  .wrap-full{max-width:none;margin:0;padding-left:clamp(1rem,3vw,2.2rem);padding-right:clamp(1rem,3vw,2.2rem);}

  /* ---------------- nav ---------------- */
  .utility-bar{
    display:flex;align-items:center;justify-content:space-between;
    gap:1rem;flex-wrap:wrap;
    padding:0.6rem clamp(1.25rem,4vw,3.5rem);
    background:var(--paper);color:var(--ink-faint);
    border-bottom:1px solid var(--line);
    font-size:0.74rem;letter-spacing:0.01em;
  }
  .utility-bar a{text-decoration:none;color:var(--ink-faint);transition:color .2s ease;}
  .utility-bar a:hover{color:var(--red);}
  .utility-links{display:flex;gap:1.4rem;flex-wrap:wrap;}
  .utility-links span{opacity:0.5;}

  .site-nav{
    position:sticky;top:0;z-index:60;
    display:flex;align-items:center;justify-content:space-between;
    gap:1.5rem;
    padding:0.7rem clamp(1.25rem,4vw,3.5rem);
    background:rgba(255,253,248,0.94);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .brand{
    display:flex;align-items:center;gap:0.65rem;
    font-family:var(--font-heading);font-weight:700;
    font-size:1rem;letter-spacing:0.01em;
    text-decoration:none;color:var(--ink);
    flex:none;
  }
  .brand-logo{
    width:46px;height:46px;border-radius:50%;
    object-fit:cover;flex:none;
    box-shadow:0 0 0 1px var(--line);
  }
  .nav-links{
    display:flex;gap:clamp(0.85rem,2.2vw,1.7rem);flex-wrap:wrap;
    font-size:0.82rem;font-weight:500;
  }
  .nav-links a{
    text-decoration:none;color:var(--ink-soft);
    padding-bottom:3px;border-bottom:1px solid transparent;
    white-space:nowrap;
    transition:color .2s ease, border-color .2s ease;
  }
  .nav-links a:hover, .nav-links a.current{color:var(--red);}
  .nav-icons{display:flex;align-items:center;gap:1.1rem;color:var(--ink);flex:none;}
  .nav-icons > svg, .icon-btn{width:19px;height:19px;cursor:pointer;}

  .nav-drop{position:relative;display:flex;align-items:center;}
  .nav-drop > span{
    display:flex;align-items:center;gap:0.35rem;cursor:pointer;
    color:var(--ink-soft);transition:color .2s ease;
  }
  .nav-drop:hover > span, .nav-drop:focus-within > span{color:var(--red);}
  .nav-drop svg{width:11px;height:11px;transition:transform .2s ease;}
  .nav-drop:hover svg, .nav-drop:focus-within svg{transform:rotate(180deg);}
  .nav-drop .dropdown{
    position:absolute;top:calc(100% + 14px);left:-1.1rem;
    min-width:200px;background:var(--white);
    box-shadow:var(--shadow);border:1px solid var(--line);border-radius:2px;
    padding:0.6rem 0;
    opacity:0;visibility:hidden;transform:translateY(6px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  .nav-drop:hover .dropdown, .nav-drop:focus-within .dropdown{
    opacity:1;visibility:visible;transform:translateY(0);
  }
  .nav-drop .dropdown-label{
    display:block;padding:0.3rem 1.1rem 0.5rem;
    font-size:0.66rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--ink-faint);border-bottom:1px solid var(--line);margin-bottom:0.3rem;
  }
  .nav-drop .dropdown a{
    display:block;padding:0.6rem 1.1rem;
    font-size:0.86rem;font-weight:500;
    color:var(--ink-soft);text-decoration:none;white-space:nowrap;
  }
  .nav-drop .dropdown a:hover{background:var(--cream);color:var(--red);}

  .cart-btn{position:relative;display:flex;}
  .cart-badge{
    position:absolute;top:-7px;right:-8px;
    width:15px;height:15px;border-radius:50%;
    background:var(--ink);color:#fff;
    font-family:var(--font-body);font-size:0.55rem;font-weight:700;
    display:flex;align-items:center;justify-content:center;
  }

  /* ---------------- hero (foto a piena pagina, testo sopra) ---------------- */
  .hero{
    position:relative;overflow:hidden;isolation:isolate;
    min-height:clamp(520px,62vw,760px);
    display:flex;align-items:center;
    padding:clamp(4.5rem,9vw,6rem) 0;
  }
  .hero-media{position:absolute;inset:0;z-index:0;background:var(--ink);}
  .hero-media .slider-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .6s ease;}
  .hero-media .slider-slide.is-active{opacity:1;visibility:visible;}
  .hero-media img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    filter:saturate(1.1) contrast(1.05);
  }
  .hero::before{
    content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(180deg, rgba(15,11,9,0.72) 0%, rgba(15,11,9,0.45) 42%, rgba(15,11,9,0.72) 100%);
  }
  .hero > .wrap{position:relative;z-index:2;width:100%;}
  .hero-copy{max-width:720px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;}
  .hero-crest{
    width:64px;height:64px;border-radius:50%;object-fit:cover;
    box-shadow:0 0 0 3px rgba(255,253,248,0.85);margin-bottom:1.4rem;
  }
  .hero-copy .eyebrow{color:#e7a89f;}
  .hero h1{
    font-size:clamp(2.6rem,6vw,4.1rem);
    font-weight:800;
    line-height:1.02;
    margin-top:0.7rem;
    color:#f9f4ee;
  }
  .hero-sub{
    margin:1.3rem auto 0;font-size:1.2rem;color:#e7dcd2;
    max-width:38ch;line-height:1.6;
  }
  .hero-copy .hero-actions{justify-content:center;}

  .hero .slider-arrow{z-index:3;}
  .hero .slider-dots{z-index:3;bottom:1.1rem;}
  .btn{
    display:inline-flex;align-items:center;gap:0.6rem;
    font-weight:600;font-size:0.86rem;letter-spacing:0.01em;
    text-decoration:none;
    padding:0.9rem 1.8rem;border-radius:2px;
    transition:transform .18s ease, background .18s ease, border-color .18s ease, opacity .18s ease;
  }
  .btn-primary{background:var(--btn-bg);color:var(--white);}
  .btn-primary:hover{background:var(--ink);}
  .btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
  .btn-ghost:hover{border-color:var(--ink);}
  .btn-line{background:transparent;color:#f3ede6;border:1px solid rgba(243,237,230,0.35);}
  .btn-line:hover{border-color:#f3ede6;}
  .hero-actions{margin-top:2.1rem;display:flex;flex-wrap:wrap;gap:1rem;}

  .art{
    position:relative;border-radius:3px;overflow:hidden;
    aspect-ratio:5/6;box-shadow:var(--shadow);
    border:1px solid var(--line);
  }
  .art .scene{position:absolute;inset:0;background:linear-gradient(155deg,#fdf8ee 0%,#f1e4cb 55%,#e6d0a8 100%);}
  .art.on-dark .scene{background:linear-gradient(155deg,#241b16 0%,#150f0c 70%);}
  .art svg{position:absolute;inset:0;width:100%;height:100%;}
  .art figcaption{
    position:absolute;left:0.9rem;bottom:0.9rem;
    font-size:0.68rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--ink-faint);background:rgba(255,253,248,0.85);
    padding:0.35rem 0.6rem;border-radius:2px;
  }
  .art.on-dark figcaption{color:#c9b8ac;background:rgba(20,15,12,0.6);}

  .guitar-mark{fill:none;stroke:var(--red-deep);stroke-width:1.1;opacity:0.5;}
  .art.on-dark .guitar-mark{stroke:#d98e80;opacity:0.5;}

  /* ---------------- about ---------------- */
  .about{background:var(--cream);padding:clamp(4rem,8vw,6rem) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .about .wrap{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
  @media(max-width:880px){.about .wrap{grid-template-columns:1fr;}}
  .about h2{font-size:clamp(1.9rem,3.4vw,2.4rem);}
  .about .lede{margin-top:1.3rem;font-size:1.1rem;line-height:1.75;color:var(--ink-soft);max-width:56ch;}
  .about .lede p+p{margin-top:1rem;}
  .about .stat-row{display:flex;gap:clamp(1.6rem,4vw,3rem);margin-top:2rem;flex-wrap:wrap;}
  .stat b{font-family:var(--font-heading);font-size:1.9rem;display:block;color:var(--red);}
  .stat span{font-size:0.78rem;color:var(--ink-faint);letter-spacing:0.03em;}

  /* ---------------- categories ---------------- */
  .categories{padding:0 0 clamp(3.5rem,7vw,5rem);}
  .cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.1rem;}
  @media(max-width:1100px){.cat-grid{grid-template-columns:repeat(3,1fr);}}
  @media(max-width:640px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
  .cat-card{
    position:relative;aspect-ratio:3/4;border-radius:2px;overflow:hidden;
    display:block;text-decoration:none;
    background:linear-gradient(155deg,#fdf8ee 0%,#f1e4cb 55%,#e6d0a8 100%);
    box-shadow:var(--shadow);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .cat-card:hover{transform:translateY(-4px);}
  .cat-card svg,
  .cat-card-photo{
    position:absolute;inset:0;width:100%;height:100%;
    transition:transform .35s ease;
  }
  .cat-card-photo{object-fit:cover;}
  .cat-card:hover svg,
  .cat-card:hover .cat-card-photo{transform:scale(1.06);}
  .cat-card::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(0deg, rgba(28,20,14,0.72) 0%, rgba(28,20,14,0.08) 55%, transparent 75%);
  }
  .cat-card-text{
    position:absolute;left:1.1rem;right:1.1rem;bottom:1.1rem;z-index:2;
    display:flex;flex-direction:column;gap:0.5rem;
  }
  .cat-name{
    font-family:var(--font-heading);font-weight:700;font-size:1.2rem;
    letter-spacing:-0.01em;color:#fbf4ee;
  }
  .cat-btn{
    display:inline-flex;align-items:center;gap:0.4rem;
    color:#e7cfc2;
    font-size:0.7rem;font-weight:600;letter-spacing:0.07em;text-transform:uppercase;
    transition:color .2s ease;align-self:flex-start;
  }
  .cat-card::after{transition:background .25s ease;}
  .cat-card:hover .cat-btn{color:var(--red-bright);}
  .cat-btn::after{content:"→";font-size:0.95em;}

  /* ---------------- featured ---------------- */
  .featured{padding:clamp(4rem,8vw,6rem) 0;}
  .section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.6rem;}
  .section-head h2{font-size:clamp(1.9rem,3.4vw,2.4rem);}
  .section-head .see-all{font-weight:700;font-size:0.86rem;text-decoration:none;color:var(--red);white-space:nowrap;}

  .card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem;}
  @media(max-width:1180px){.card-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:620px){.card-grid{grid-template-columns:1fr;}}

  .card-grid.cols-4{grid-template-columns:repeat(4,1fr);}
  @media(max-width:1320px){.card-grid.cols-4{grid-template-columns:repeat(3,1fr);}}
  @media(max-width:900px){.card-grid.cols-4{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.card-grid.cols-4{grid-template-columns:1fr;}}

  /* ---------------- carosello "Appena Arrivati" (Home) — scorre a tutta larghezza ---------------- */
  .featured-carousel-outer{position:relative;margin-top:2.4rem;}
  .featured-carousel{
    display:flex;gap:1.4rem;overflow-x:auto;scroll-snap-type:x proximity;
    padding:0.4rem clamp(1.25rem,4vw,3.5rem) 1.6rem;
    scrollbar-width:thin;-webkit-overflow-scrolling:touch;
  }
  .featured-carousel::-webkit-scrollbar{height:6px;}
  .featured-carousel::-webkit-scrollbar-thumb{background:rgba(28,23,18,0.18);border-radius:3px;}
  .featured-slide{flex:0 0 clamp(250px,26vw,320px);scroll-snap-align:start;}
  .featured-slide .p-card{height:100%;}
  .carousel-arrow{
    position:absolute;top:50%;transform:translateY(-50%);z-index:3;
    width:44px;height:44px;border-radius:50%;border:1px solid var(--line);
    background:var(--paper);display:flex;align-items:center;justify-content:center;
    cursor:pointer;color:var(--ink);box-shadow:var(--shadow);padding:0;
  }
  .carousel-arrow:hover{border-color:var(--red);color:var(--red);}
  .carousel-arrow.prev{left:clamp(0.4rem,2vw,1.6rem);}
  .carousel-arrow.next{right:clamp(0.4rem,2vw,1.6rem);}
  .carousel-arrow svg{width:18px;height:18px;}
  @media(max-width:760px){.carousel-arrow{display:none;}}

  .p-card{background:var(--paper);border:1px solid var(--line);border-radius:3px;overflow:hidden;transition:box-shadow .25s ease, transform .25s ease;}
  .p-card:hover{box-shadow:var(--shadow);transform:translateY(-3px);}
  .p-thumb{position:relative;aspect-ratio:4/5;background:linear-gradient(155deg,#fbf4e8,#efe0c9);border-bottom:1px solid var(--line);}
  .p-thumb svg{position:absolute;inset:0;width:100%;height:100%;}
  .p-thumb .tag{
    position:absolute;top:0.7rem;left:0.7rem;
    font-size:0.64rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;
    background:var(--white);color:var(--red);padding:0.3rem 0.6rem;border-radius:1px;
  }
  .p-thumb .tag.sold{color:var(--ink-faint);}
  .p-body{padding:1.15rem 1.2rem 1.3rem;}
  .p-brand{font-size:0.68rem;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-faint);}
  .p-name{font-family:var(--font-heading);font-size:1.12rem;font-weight:700;margin-top:0.25rem;line-height:1.3;}
  .p-desc{font-size:0.92rem;color:var(--ink-soft);margin-top:0.5rem;line-height:1.5;font-style:italic;}
  .p-foot{display:flex;align-items:center;justify-content:space-between;margin-top:0.9rem;}
  .p-price{font-family:var(--font-body);font-weight:700;font-size:1.15rem;font-variant-numeric:tabular-nums;}
  .p-cta{font-size:0.78rem;font-weight:700;color:var(--red);text-decoration:none;}

  /* ---------------- santuario band (dark) ---------------- */
  .band-dark{
    background:var(--dark-bg);
    background:linear-gradient(180deg,
      color-mix(in srgb, var(--dark-bg) 85%, black) 0%,
      color-mix(in srgb, var(--dark-bg) 88%, white) 60%,
      color-mix(in srgb, var(--dark-bg) 85%, black) 100%);
    color:#f3e6dd;padding:clamp(4rem,8vw,6rem) 0;
    position:relative;
  }
  .band-dark::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse 60% 50% at 80% 10%, rgba(163,39,29,0.18), transparent 60%);
    pointer-events:none;
  }
  .band-dark .wrap{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
  @media(max-width:880px){.band-dark .wrap{grid-template-columns:1fr;}}
  .band-dark h2{color:#f5f3ee;font-size:clamp(2rem,4vw,2.7rem);}
  .band-dark .lede{margin-top:1.2rem;font-size:1.08rem;line-height:1.7;color:#d8c6ba;max-width:50ch;}
  .band-dark .lede p+p{margin-top:0.9rem;}
  .band-dark .hero-actions{margin-top:1.9rem;}

  /* ---------------- instagram strip ---------------- */
  .insta{padding:clamp(3rem,6vw,4.5rem) 0;background:var(--cream);}
  .insta .section-head{margin-bottom:1.8rem;}
  .insta-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0.6rem;}
  @media(max-width:760px){.insta-grid{grid-template-columns:repeat(3,1fr);}}
  .insta-tile{aspect-ratio:1;border-radius:2px;position:relative;overflow:hidden;border:1px solid var(--line);}
  .insta-tile svg{position:absolute;inset:0;width:100%;height:100%;}
  .insta-tile .t1{background:linear-gradient(155deg,#f7ede0,#e9d6bd);}
  .insta-tile .t2{background:linear-gradient(155deg,#241a16,#100b09);}
  .insta-tile .t3{background:linear-gradient(155deg,#efe1cd,#dcc4a2);}

  /* ---------------- shop ---------------- */
  .shop{background:var(--cream);padding:clamp(4rem,8vw,6rem) 0;border-top:1px solid var(--line);}
  .shop-head{margin-bottom:2.4rem;}
  .shop-head h2{font-size:clamp(1.9rem,3.4vw,2.4rem);}
  .shop-head p{color:var(--ink-soft);margin-top:0.6rem;font-size:1.02rem;}
  .filter-bar{
    display:flex;align-items:center;gap:0.7rem;flex-wrap:wrap;
    padding:1.1rem 1.3rem;margin-bottom:1.4rem;
    background:var(--paper);border:1px solid var(--line);border-radius:3px;
  }
  .filter-bar-label{
    font-size:0.7rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--ink-faint);margin-right:0.3rem;
  }
  .filter-pill{
    display:inline-flex;align-items:center;gap:0.4rem;
    border:1px solid var(--line);border-radius:3px;background:var(--white);
    padding:0.5rem 1rem;font-size:0.84rem;color:var(--ink-soft);
    cursor:pointer;transition:border-color .2s ease, color .2s ease;
  }
  .filter-pill span{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:0.78rem;}
  .filter-pill:hover{border-color:var(--red);color:var(--ink);}
  .filter-pill.active{background:var(--ink);border-color:var(--ink);color:var(--white);}
  .filter-pill.active span{color:#c9baaf;}
  .filter-bar .spacer{flex:1;}
  .sort-pill{
    border:1px solid var(--line);border-radius:2px;padding:0.55rem 0.95rem;
    font-size:0.82rem;color:var(--ink);display:inline-flex;align-items:center;gap:0.5rem;
    background:var(--white);
  }

  .shop-toolbar{
    display:flex;align-items:center;justify-content:space-between;
    gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem;
    font-size:0.86rem;color:var(--ink-soft);
  }

  /* ---------------- product page ---------------- */
  .product-page{background:var(--cream);padding:0;}
  .breadcrumb{
    font-size:0.8rem;color:var(--ink-faint);margin-bottom:1.6rem;
    display:flex;gap:0.5rem;flex-wrap:wrap;
  }
  .breadcrumb a{color:var(--ink-faint);text-decoration:none;}
  .breadcrumb a:hover{color:var(--red);}
  .breadcrumb .current{color:var(--ink);}

  .product-layout{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;}
  @media(max-width:900px){.product-layout{grid-template-columns:1fr;}}

  .product-gallery-pin{
    position:sticky;top:0;height:100vh;
    overflow-y:auto;overflow-x:hidden;
    scroll-snap-type:y proximity;
    background:var(--cream);
  }
  .product-gallery-pin::-webkit-scrollbar{width:5px;}
  .product-gallery-pin::-webkit-scrollbar-thumb{background:rgba(28,23,18,0.2);}
  @media(max-width:900px){.product-gallery-pin{position:relative;height:64vh;}}

  .gallery-scroll-hint{
    position:sticky;top:1.2rem;z-index:3;
    display:inline-flex;align-items:center;gap:0.5rem;
    margin:1.2rem 0 -2.6rem 1.4rem;
    font-size:0.68rem;font-weight:600;letter-spacing:0.07em;text-transform:uppercase;
    color:var(--ink-soft);background:rgba(255,253,248,0.88);
    padding:0.4rem 0.7rem;border-radius:2px;
  }
  .gallery-scroll-hint svg{width:13px;height:13px;animation:hintbob 1.8s ease-in-out infinite;}
  @keyframes hintbob{0%,100%{transform:translateY(0);}50%{transform:translateY(4px);}}

  .gallery-photo{
    position:relative;height:100vh;scroll-snap-align:start;
    background:linear-gradient(155deg,#fdf8ee 0%,#f1e4cb 55%,#e6d0a8 100%);
    border-bottom:1px solid var(--line);
  }
  .gallery-photo:nth-child(3){background:linear-gradient(155deg,#f4e9d8,#e4cfae);}
  .gallery-photo:nth-child(4){background:linear-gradient(155deg,#faf3e6,#ecdcc2);}
  .gallery-photo:nth-child(5){background:linear-gradient(155deg,#f6ecdd,#e8d3b5);}
  .gallery-photo:last-child{border-bottom:none;}
  .gallery-photo .tag{
    position:absolute;top:1.4rem;left:1.4rem;z-index:2;
    font-size:0.68rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;
    background:var(--white);color:var(--red);padding:0.4rem 0.75rem;border-radius:1px;
  }
  .gallery-photo svg{position:absolute;inset:0;width:100%;height:100%;}
  .gallery-photo figcaption{
    position:absolute;left:1.4rem;bottom:1.4rem;z-index:2;
    font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--ink-soft);background:rgba(255,253,248,0.88);
    padding:0.4rem 0.7rem;border-radius:2px;
  }

  .product-info-col{padding:clamp(2.4rem,5vw,4.5rem) clamp(1.5rem,4vw,4rem);}
  .product-cats{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:0.9rem;}
  .product-cats a{
    font-size:0.7rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--red);background:rgba(163,39,29,0.08);
    background:color-mix(in srgb, var(--red) 10%, transparent);
    padding:0.35rem 0.7rem;border-radius:2px;text-decoration:none;
    transition:background .18s ease, color .18s ease;
  }
  .product-cats a:hover{background:var(--red);color:var(--white);}
  .product-info-col .p-brand{font-size:0.78rem;}
  .product-info-col h1{font-size:clamp(1.9rem,3vw,2.4rem);margin-top:0.4rem;}
  .product-meta-row{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:0.8rem;font-size:0.86rem;color:var(--ink-faint);}
  .product-meta-row b{color:var(--ink-soft);font-weight:500;}

  .price-row{display:flex;align-items:baseline;gap:0.8rem;margin-top:1.4rem;}
  .price-row .price{font-family:var(--font-body);font-weight:700;font-size:2.1rem;font-variant-numeric:tabular-nums;color:var(--red);}
  .price-row .avail{font-size:0.82rem;color:#5c8a5c;font-weight:700;}

  .product-story{margin-top:1.8rem;padding-top:1.8rem;border-top:1px solid var(--line);}
  .product-story p{
    font-family:var(--font-story);
    font-size:1.14rem;line-height:1.7;color:var(--ink-soft);max-width:56ch;
  }
  .product-story p + p{margin-top:1.15rem;}
  .product-story strong{color:var(--ink);font-weight:600;font-style:italic;}

  .buy-row{display:flex;gap:0.9rem;margin-top:2.2rem;align-items:stretch;flex-wrap:wrap;}
  .qty{
    display:flex;align-items:center;border:1px solid var(--line);border-radius:2px;
  }
  .qty button{
    width:40px;background:none;border:none;font-size:1.1rem;color:var(--ink);cursor:pointer;
    font-family:var(--font-body);
  }
  .qty span{width:34px;text-align:center;font-variant-numeric:tabular-nums;}
  .buy-row .btn-primary{flex:1;justify-content:center;border:none;cursor:pointer;}

  .product-links{display:flex;gap:0.85rem;flex-wrap:wrap;margin-top:1.3rem;}
  .product-link-btn{
    display:inline-flex;align-items:center;gap:0.5rem;
    padding:0.65rem 1.1rem;border-radius:999px;
    border:1px solid var(--line);background:var(--paper);
    font-family:inherit;font-size:0.82rem;font-weight:600;color:var(--ink-soft);
    cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease;
  }
  .product-link-btn svg{width:16px;height:16px;flex:none;}
  .product-link-btn:hover,.product-link-btn:focus-visible{background:var(--red);color:var(--white);border-color:var(--red);}
  .product-link-btn[data-inquiry-santuario]{
    background:rgba(163,39,29,0.06);
    background:color-mix(in srgb, var(--red) 6%, var(--paper));
    border-color:rgba(163,39,29,0.22);
    border-color:color-mix(in srgb, var(--red) 22%, transparent);
    color:var(--red);
  }
  .product-link-btn[data-inquiry-santuario]:hover,.product-link-btn[data-inquiry-santuario]:focus-visible{color:var(--white);}

  .product-inquiry{
    margin-top:1.6rem;background:var(--paper);border:1px solid var(--line);border-radius:4px;
    padding:clamp(1.5rem,4vw,2.1rem);
  }
  .product-inquiry[hidden]{display:none;}
  .product-inquiry h3{font-size:1.18rem;margin-top:0.3rem;}
  .product-inquiry-lede{margin-top:0.55rem;margin-bottom:1.4rem;font-size:0.92rem;line-height:1.6;color:var(--ink-soft);max-width:52ch;}
  .product-inquiry .form-card{background:none;border:none;padding:0;}
  .santuario-check{
    background:rgba(163,39,29,0.05);
    background:color-mix(in srgb, var(--red) 5%, transparent);
    border:1px solid rgba(163,39,29,0.16);
    border-color:color-mix(in srgb, var(--red) 16%, transparent);
    border-radius:3px;padding:0.75rem 0.9rem;
  }

  .spec-table{margin-top:2.4rem;border-top:1px solid var(--line);}
  .spec-row{
    display:flex;justify-content:space-between;gap:1rem;
    padding:0.85rem 0;border-bottom:1px solid var(--line);
    font-size:0.92rem;
  }
  .spec-row b{color:var(--ink-faint);font-weight:500;}
  .spec-row span{color:var(--ink);text-align:right;}

  .related-head{margin-top:clamp(4rem,8vw,6rem);margin-bottom:2rem;}

  /* ---------------- santuario page (light restyle) ---------------- */
  .santuario-page{
    background:var(--dark-bg);
    background:linear-gradient(180deg,
      color-mix(in srgb, var(--dark-bg) 85%, black) 0%,
      color-mix(in srgb, var(--dark-bg) 88%, white) 60%,
      color-mix(in srgb, var(--dark-bg) 85%, black) 100%);
    color:#f3e6dd;padding:clamp(4rem,8vw,6rem) 0;
    position:relative;
  }
  .santuario-page .eyebrow{color:#e7a89f;}
  .split{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
  .split.reverse .art{order:2;}
  @media(max-width:860px){.split{grid-template-columns:1fr;}.split.reverse .art{order:0;}}
  .santuario-page h2{font-size:clamp(1.9rem,3.6vw,2.5rem);color:#f5f3ee;}
  .santuario-page .lede{margin-top:1.3rem;font-size:1.12rem;line-height:1.75;color:#d8c6ba;max-width:52ch;}
  .santuario-page .lede p+p{margin-top:1.05rem;}
  .santuario-page .lede strong{color:#f5f3ee;}

  .feature-grid{
    margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);
    gap:1px;background:rgba(243,230,221,0.12);border:1px solid rgba(243,230,221,0.12);
  }
  @media(max-width:860px){.feature-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.feature-grid{grid-template-columns:1fr;}}
  .feature{background:#1c1512;padding:2rem 1.6rem;display:flex;flex-direction:column;gap:0.9rem;transition:background .25s ease;}
  .feature:hover{background:#241b16;}
  .feature svg{width:24px;height:24px;color:var(--red-bright);}
  .feature h3{font-family:var(--font-heading);font-size:1.02rem;font-weight:700;color:#f5f3ee;}
  .feature p{font-size:0.96rem;line-height:1.55;color:#c9b8ac;}

  .santuario-cta{text-align:center;max-width:640px;margin:4.5rem auto 0;}
  .santuario-cta h2{color:#f5f3ee;}
  .santuario-cta .lede{margin:1.1rem auto 0;text-align:center;color:#d8c6ba;}
  .santuario-cta .lede strong{color:#f5f3ee;}
  .santuario-cta-form{max-width:560px;margin:2.2rem auto 0;text-align:left;}

  /* ---------------- santuario slider ---------------- */
  .santuario-slider{
    position:relative;aspect-ratio:5/6;border-radius:3px;overflow:hidden;
    box-shadow:0 20px 40px -24px rgba(0,0,0,0.6);border:1px solid rgba(243,230,221,0.16);
  }
  .slider-slide{
    position:absolute;inset:0;opacity:0;visibility:hidden;
    transition:opacity .5s ease;
    background:linear-gradient(155deg,#241b16 0%,#150f0c 70%);
  }
  .slider-slide:nth-child(2){background:linear-gradient(155deg,#26190f,#170e09);}
  .slider-slide:nth-child(3){background:linear-gradient(155deg,#211a12,#12100c);}
  .slider-slide:nth-child(4){background:linear-gradient(155deg,#231712,#140c0a);}
  .slider-slide.is-active{opacity:1;visibility:visible;}
  .slider-slide svg{position:absolute;inset:0;width:100%;height:100%;}
  .slider-slide svg .guitar-mark{stroke:#d98e80;opacity:0.5;}
  .slider-slide figcaption{
    position:absolute;left:0.9rem;bottom:0.9rem;z-index:2;
    font-size:0.68rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;
    color:#c9b8ac;background:rgba(20,15,12,0.65);
    padding:0.35rem 0.6rem;border-radius:2px;
  }
  .slider-arrow{
    position:absolute;top:50%;transform:translateY(-50%);z-index:3;
    width:36px;height:36px;border-radius:50%;
    background:rgba(255,253,248,0.92);border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;cursor:pointer;
    color:var(--ink);transition:background .2s ease,color .2s ease;
  }
  .slider-arrow:hover{background:var(--white);color:var(--red);}
  .slider-arrow.prev{left:0.8rem;}
  .slider-arrow.next{right:0.8rem;}
  .slider-arrow svg{width:16px;height:16px;}
  .slider-dots{
    position:absolute;left:50%;bottom:0.9rem;transform:translateX(-50%);z-index:3;
    display:flex;gap:0.5rem;
  }
  .slider-dots span{
    width:8px;height:8px;border-radius:50%;
    background:rgba(28,23,18,0.28);cursor:pointer;
    transition:background .2s ease;
  }
  .slider-dots span.active{background:var(--red);}

  /* ---------------- santuario gallery ---------------- */
  .santuario-gallery-head{margin-top:clamp(4rem,8vw,6rem);}
  .santuario-gallery{
    margin-top:2.2rem;display:grid;
    grid-template-columns:repeat(3,1fr);gap:1rem;
  }
  @media(max-width:860px){.santuario-gallery{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:540px){.santuario-gallery{grid-template-columns:1fr;}}
  .gallery-tile{
    position:relative;aspect-ratio:4/3;border-radius:2px;overflow:hidden;
    border:1px solid rgba(243,230,221,0.14);
    background:linear-gradient(155deg,#221a14,#140d0a);
  }
  .gallery-tile:nth-child(2){background:linear-gradient(155deg,#241b16,#150f0c);}
  .gallery-tile:nth-child(3){background:linear-gradient(155deg,#1e1712,#110c09);}
  .gallery-tile:nth-child(4){background:linear-gradient(155deg,#231712,#140c0a);}
  .gallery-tile:nth-child(5){background:linear-gradient(155deg,#211a12,#12100c);}
  .gallery-tile:nth-child(6){background:linear-gradient(155deg,#26190f,#170e09);}
  .gallery-tile svg{position:absolute;inset:0;width:100%;height:100%;}
  .gallery-tile svg .guitar-mark{stroke:#d98e80;opacity:0.5;}
  .gallery-tile figcaption{
    position:absolute;left:0.8rem;bottom:0.8rem;z-index:2;
    font-size:0.66rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;
    color:#c9b8ac;background:rgba(20,15,12,0.65);
    padding:0.3rem 0.55rem;border-radius:2px;
  }

  /* ---------------- contatti ---------------- */
  .contatti{background:var(--cream);padding:clamp(4rem,8vw,6rem) 0;border-top:1px solid var(--line);}
  .contatti .wrap{display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);}
  @media(max-width:860px){.contatti .wrap{grid-template-columns:1fr;}}
  .info-list{margin-top:1.8rem;display:flex;flex-direction:column;gap:1.1rem;}
  .info-row{display:flex;gap:0.9rem;align-items:flex-start;}
  .info-row svg{width:19px;height:19px;color:var(--red);margin-top:0.15rem;flex:none;}
  .info-row b{display:block;font-size:0.7rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
  .info-row span, .info-row a{font-size:1.02rem;color:var(--ink);text-decoration:none;}

  .form-card{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:clamp(1.6rem,4vw,2.4rem);}
  .field{margin-bottom:1.15rem;}
  .field label{display:block;font-size:0.74rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.4rem;}
  .field input,.field textarea{
    width:100%;border:1px solid var(--line);border-radius:2px;
    background:var(--white);padding:0.75rem 0.85rem;
    font-family:inherit;font-size:0.95rem;color:var(--ink);
  }
  .field textarea{min-height:100px;resize:vertical;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
  @media(max-width:480px){.field-row{grid-template-columns:1fr;}}
  .consent{display:flex;gap:0.55rem;align-items:flex-start;font-size:0.82rem;color:var(--ink-soft);margin-bottom:1.3rem;}
  .consent input{margin-top:0.2rem;}

  /* ---------------- footer ---------------- */
  footer{background:var(--ink);color:#d8c6ba;padding:3.2rem clamp(1.25rem,4vw,3.5rem) 2.2rem;}
  .footer-grid{max-width:1560px;margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem;}
  @media(max-width:760px){.footer-grid{grid-template-columns:1fr;}}
  footer .brand{color:#f5f3ee;}
  footer .brand-logo{box-shadow:0 0 0 1px rgba(255,255,255,0.15);}
  footer p{font-size:0.9rem;line-height:1.6;color:#b5a297;margin-top:0.8rem;max-width:34ch;}
  footer h4{font-family:var(--font-body);font-size:0.72rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:#e7a89f;margin-bottom:0.9rem;}
  footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.55rem;}
  footer a{text-decoration:none;font-size:0.92rem;color:#d8c6ba;transition:color .2s ease;}
  footer a:hover{color:#fff;}
  .footer-bottom{
    max-width:1560px;margin:2.6rem auto 0;padding-top:1.6rem;border-top:1px solid rgba(216,198,186,0.16);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:0.8rem;
    font-size:0.78rem;color:#8c7a6f;
  }

  .preview-flag{
    position:fixed;right:14px;bottom:14px;z-index:70;
    font-size:0.68rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;
    color:#fff;background:var(--red);padding:0.5rem 0.8rem;border-radius:2px;
    box-shadow:0 10px 20px -8px rgba(0,0,0,0.4);opacity:0.94;
  }

  @media (prefers-reduced-motion: reduce){
    *{transition:none !important;}
    html{scroll-behavior:auto;}
  }


/* =====================================================================
   Aggiunte tema WordPress — menu mobile, WooCommerce, elementi dinamici
   ===================================================================== */

/* ---------------- skip link ---------------- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--ink);color:#fff;padding:0.8rem 1.2rem;
  font-size:0.85rem;text-decoration:none;
}
.skip-link:focus{left:1rem;top:1rem;}

/* ---------------- mobile nav toggle ---------------- */
.nav-toggle{
  display:none;flex:none;
  width:38px;height:38px;align-items:center;justify-content:center;
  background:none;border:1px solid var(--line);border-radius:2px;
  color:var(--ink);cursor:pointer;
}
.nav-toggle svg{width:18px;height:18px;}
@media(max-width:880px){
  .nav-toggle{display:flex;}
  .site-nav{flex-wrap:wrap;}
  .nav-links{
    order:4;flex-basis:100%;
    display:none;flex-direction:column;gap:0;
    margin-top:0.8rem;padding-top:0.8rem;border-top:1px solid var(--line);
  }
  .nav-links.is-open{display:flex;}
  .nav-links{font-size:1.02rem;}
  .nav-links a{display:block;padding:0.95rem 0.1rem;border-bottom:1px solid var(--line-soft);}
  .nav-drop{width:100%;font-size:1.02rem;}
  .nav-drop > span{width:100%;justify-content:space-between;padding:0.95rem 0.1rem;border-bottom:1px solid var(--line-soft);}
  .nav-drop .dropdown{
    position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;border:none;display:none;padding:0 0 0 1rem;
  }
  .nav-drop.is-open .dropdown{display:block;}
  .nav-drop .dropdown-label{display:none;}
  .nav-drop .dropdown a{font-size:0.98rem;padding:0.85rem 0.1rem;}
}

/* ---------------- WooCommerce: notices & messages ---------------- */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-noreviews,
p.no-comments{
  list-style:none;margin:0 0 1.6rem;padding:1rem 1.3rem;
  border-radius:2px;font-size:0.92rem;
  background:var(--paper);border:1px solid var(--line);color:var(--ink-soft);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.woocommerce-message{border-color:#9fbf9a;background:#f3f8f2;color:#3d5c3a;}
.woocommerce-error{border-color:#e0aba3;background:#fbf0ee;color:var(--red-deep);}
.woocommerce-error li{list-style:none;}
.woocommerce-message a.button,
.woocommerce-error a.button{
  order:2;background:var(--ink);color:#fff;text-decoration:none;
  font-size:0.8rem;font-weight:600;padding:0.5rem 0.9rem;border-radius:2px;
}

/* ---------------- WooCommerce: breadcrumb ---------------- */
.woocommerce-breadcrumb{
  font-size:0.8rem;color:var(--ink-faint);margin:0 0 1.6rem;
}
.woocommerce-breadcrumb a{color:var(--ink-faint);text-decoration:none;}
.woocommerce-breadcrumb a:hover{color:var(--red);}

/* ---------------- WooCommerce: star rating (minimal) ---------------- */
.star-rating{overflow:hidden;position:relative;width:5.4em;font-size:0.9rem;line-height:1;color:var(--red);}
.star-rating::before{content:"\2605\2605\2605\2605\2605";opacity:0.25;letter-spacing:2px;}
.star-rating span{position:absolute;top:0;left:0;overflow:hidden;}
.star-rating span::before{content:"\2605\2605\2605\2605\2605";letter-spacing:2px;color:var(--red);}

/* ---------------- WooCommerce: quantity input ---------------- */
.quantity{display:flex;align-items:center;border:1px solid var(--line);border-radius:2px;background:var(--white);}
.quantity .qty-btn{
  width:40px;height:100%;background:none;border:none;font-size:1.1rem;color:var(--ink);cursor:pointer;
  font-family:var(--font-body);padding:0.6rem 0;
}
.quantity input.qty{
  width:44px;text-align:center;border:none;background:none;
  font-variant-numeric:tabular-nums;font-family:var(--font-body);font-size:0.95rem;color:var(--ink);
  -moz-appearance:textfield;padding:0.6rem 0;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

/* ---------------- WooCommerce: add to cart button reuse .btn ---------------- */
.single_add_to_cart_button,
a.added_to_cart,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button{
  display:inline-flex;align-items:center;justify-content:center;gap:0.6rem;
  font-family:var(--font-body);font-weight:600;font-size:0.86rem;letter-spacing:0.01em;
  text-decoration:none;padding:0.9rem 1.8rem;border-radius:2px;border:none;
  background:var(--btn-bg);color:var(--white);cursor:pointer;
  transition:background .18s ease, transform .18s ease;
}
.single_add_to_cart_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover{background:var(--ink);color:var(--white);}
.woocommerce a.button.loading,
.single_add_to_cart_button.loading{opacity:0.6;}

/* ---------------- WooCommerce: shop toolbar / pagination ---------------- */
.woocommerce-result-count,
.woocommerce-ordering{font-size:0.86rem;color:var(--ink-soft);}
.woocommerce-ordering select{
  border:1px solid var(--line);border-radius:2px;padding:0.5rem 0.7rem;
  font-family:inherit;font-size:0.84rem;background:var(--white);color:var(--ink);
}
nav.woocommerce-pagination{margin-top:3rem;text-align:center;}
nav.woocommerce-pagination ul{
  display:inline-flex;list-style:none;margin:0;padding:0;gap:0.4rem;
  border:none;
}
nav.woocommerce-pagination ul li{border:none;}
nav.woocommerce-pagination a,
nav.woocommerce-pagination span{
  display:flex;align-items:center;justify-content:center;
  min-width:38px;height:38px;padding:0 0.4rem;
  border:1px solid var(--line);border-radius:2px;
  font-size:0.86rem;color:var(--ink-soft);text-decoration:none;
}
nav.woocommerce-pagination .current{background:var(--ink);border-color:var(--ink);color:#fff;}
nav.woocommerce-pagination a:hover{border-color:var(--red);color:var(--red);}

/* ---------------- WooCommerce: cross-sells / upsells reuse card-grid ---------------- */
.woocommerce .related.products,
.woocommerce .up-sells.upsells.products{margin-top:clamp(4rem,8vw,6rem);}
.woocommerce .related.products > h2,
.woocommerce .up-sells.upsells.products > h2{
  font-family:var(--font-heading);font-size:clamp(1.9rem,3.4vw,2.4rem);margin-bottom:2.2rem;
}

/* ---------------- WooCommerce: single product tabs (specs / description) ---------------- */
.woocommerce-tabs{margin-top:2.4rem;border-top:1px solid var(--line);}
.woocommerce-tabs ul.tabs{display:flex;gap:1.6rem;list-style:none;margin:1.6rem 0 0;padding:0;flex-wrap:wrap;}
.woocommerce-tabs ul.tabs li{
  font-size:0.78rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--ink-faint);cursor:pointer;padding-bottom:0.5rem;border-bottom:2px solid transparent;
}
.woocommerce-tabs ul.tabs li.active,
.woocommerce-tabs ul.tabs li:hover{color:var(--ink);border-color:var(--red);}
.woocommerce-tabs .panel{margin-top:1.4rem;}
.woocommerce-tabs table.shop_attributes{width:100%;border-top:1px solid var(--line);border-collapse:collapse;margin-top:0.5rem;}
.woocommerce-tabs table.shop_attributes th,
.woocommerce-tabs table.shop_attributes td{
  padding:0.85rem 0;border-bottom:1px solid var(--line);font-size:0.92rem;text-align:left;
}
.woocommerce-tabs table.shop_attributes th{color:var(--ink-faint);font-weight:500;width:40%;}

/* ---------------- WooCommerce: forms (login/checkout) minimal reuse of .field ---------------- */
.woocommerce form .form-row label{
  display:block;font-size:0.74rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  color:var(--ink-faint);margin-bottom:0.4rem;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  width:100%;border:1px solid var(--line);border-radius:2px;
  background:var(--white);padding:0.75rem 0.85rem;
  font-family:inherit;font-size:0.95rem;color:var(--ink);
}

/* ---------------- empty search / archive fallback ---------------- */
.content-empty{padding:clamp(4rem,8vw,6rem) 0;text-align:center;}
.content-empty h2{font-size:1.6rem;}
.content-empty p{margin-top:1rem;color:var(--ink-soft);}

/* ---------------- generic content page (page.php / WPBakery) ---------------- */
.page-content-wrap{background:var(--cream);padding:clamp(3.5rem,7vw,5.5rem) 0;border-top:1px solid var(--line);}
.page-content-wrap .page-title{font-size:clamp(1.9rem,3.6vw,2.6rem);margin-bottom:2rem;}
.page-content-wrap .entry-content{
  font-family:"Newsreader", Georgia, serif;font-size:1.08rem;line-height:1.75;color:var(--ink-soft);max-width:74ch;
}
.page-content-wrap .entry-content h2,
.page-content-wrap .entry-content h3{font-family:var(--font-heading);margin-top:2rem;margin-bottom:0.8rem;}
.page-content-wrap .entry-content p{margin-bottom:1.1rem;}
.page-content-wrap .entry-content ul,
.page-content-wrap .entry-content ol{margin:0 0 1.1rem 1.3rem;}
.page-content-wrap .entry-content a{color:var(--red);}

/* ---------------- 404 ---------------- */
.error-404{padding:clamp(5rem,10vw,7rem) 0;text-align:center;}
.error-404 h1{font-size:clamp(3rem,8vw,5rem);color:var(--red);}
.error-404 p{margin-top:1rem;font-size:1.1rem;color:var(--ink-soft);}

/* ---------------- blog / index fallback ---------------- */
.blog-list{padding:clamp(4rem,8vw,6rem) 0;}
.blog-list article{padding:1.8rem 0;border-bottom:1px solid var(--line);}
.blog-list article h2{font-size:1.4rem;}
.blog-list article h2 a{text-decoration:none;color:var(--ink);}
.blog-list article .entry-meta{font-size:0.8rem;color:var(--ink-faint);margin-top:0.4rem;}
.blog-list article .entry-summary{margin-top:0.8rem;color:var(--ink-soft);}

/* ---------------- nav: wp_nav_menu li reset + current page ---------------- */
.nav-links,
.nav-drop .dropdown{list-style:none;}
.nav-links li,
.nav-drop .dropdown li{list-style:none;margin:0;}
.nav-links li.current-menu-item > a,
.nav-links li.current_page_item > a,
.nav-links li.current-menu-ancestor > a{color:var(--red);}

/* ---------------- header search flyout ---------------- */
.search-wrap{position:relative;display:flex;align-items:center;}
.search-flyout{
  position:absolute;top:calc(100% + 14px);right:-0.5rem;z-index:5;
  background:var(--white);border:1px solid var(--line);border-radius:2px;
  box-shadow:var(--shadow);padding:0.6rem;
}
.search-flyout input{
  width:220px;border:1px solid var(--line);border-radius:2px;
  padding:0.6rem 0.8rem;font-family:inherit;font-size:0.9rem;color:var(--ink);
}
@media(max-width:480px){.search-flyout{right:-3rem;}.search-flyout input{width:65vw;}}

/* ---------------- pagine costruite con WPBakery Page Builder ---------------- */
.entry-content--builder{max-width:none;font-family:var(--font-body);}
.entry-content--builder p{font-family:inherit;}

/* ---------------- Instagram Feed by Smash Balloon (Home) ----------------
   Il plugin ha un proprio pannello di stile (colonne, spaziatura, pulsante
   "Carica altro", colori...): consigliato configurarlo li' per restare
   coerenti con panna/rosso/nero. Qui normalizziamo solo lo spazio attorno
   al widget cosi' si inserisce bene nella sezione. */
.insta-feed-embed{margin-top:0.4rem;}
.insta-feed-embed #sb_instagram{padding:0 !important;max-width:100% !important;}
.insta-feed-embed .sbi_header{display:none;} /* l'intestazione del profilo la mostriamo gia' sopra con "@cristoguitars" */

/* Editorial redesign: warm ivory, deep red, archival black. */
body{background:#faf7f0}
.utility-bar{background:#79231f;color:#fff6e9;border:0;text-transform:uppercase;letter-spacing:.1em;font-size:.67rem}
.utility-bar a{color:#fff6e9}
.site-nav{background:rgba(250,247,240,.97);padding-top:1rem;padding-bottom:1rem}
.brand-logo{width:54px;height:54px;border-radius:0;object-fit:contain;box-shadow:none}
.nav-links{font-size:.73rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.nav-links a{color:#1a1715}
.eyebrow{letter-spacing:.2em}
h1,h2,h3{letter-spacing:-.045em}
.hero{min-height:min(790px,85vh);align-items:flex-end;padding:7rem 0;background:#171310}
.hero-media img{filter:saturate(.8) contrast(1.08)}
.hero::before{background:linear-gradient(90deg,rgba(14,11,9,.88),rgba(14,11,9,.62) 45%,rgba(14,11,9,.1)),linear-gradient(0deg,rgba(14,11,9,.3),transparent)}
.hero-copy{max-width:900px;margin:0;text-align:left;align-items:flex-start}
.hero-crest{display:none}
.hero-copy .eyebrow{color:#e8b5a8}
.hero h1{font-size:clamp(3.5rem,7.5vw,8rem);line-height:.98;font-weight:600;letter-spacing:-.065em;max-width:11ch;color:#faf4e9}
.hero-sub{margin:1.7rem 0 0;max-width:46ch;color:#eee2d4}
.hero-copy .hero-actions{justify-content:flex-start}
.btn{border-radius:0;text-transform:uppercase;letter-spacing:.1em;font-size:.73rem;min-height:51px;justify-content:center}
.categories{background:#faf7f0;padding:clamp(3rem,5vw,5rem) 0}
.cat-grid{gap:clamp(.5rem,1vw,1rem)}
.cat-card{border-radius:0;box-shadow:none}
.cat-card:hover{transform:none}
.cat-card::after{background:linear-gradient(0deg,rgba(20,15,12,.82),rgba(20,15,12,.04) 60%)}
.cat-name{font-size:clamp(1.15rem,1.6vw,1.7rem);font-weight:600}
.about{background:#eee9df;padding:clamp(5rem,9vw,9rem) 0}
.about .wrap{gap:clamp(3rem,8vw,9rem)}
.about .art{border:0;border-radius:0;box-shadow:none;margin:0;aspect-ratio:4/5}
.about h2,.section-head h2,.shop-head h2{font-size:clamp(2.5rem,4.5vw,5rem);line-height:1.08}
.about .lede{font-family:var(--font-story);font-size:clamp(1.15rem,1.5vw,1.5rem);line-height:1.6}
.about .stat-row{padding-top:1.5rem;border-top:1px solid var(--line)}
.featured{background:#faf7f0;padding:clamp(5rem,8vw,8rem) 0}
.featured-slide{flex-basis:clamp(270px,27vw,400px)}
.p-card{background:transparent;border:0;border-radius:0}
.p-card:hover{box-shadow:none;transform:none}
.p-thumb{border:0;background:#e9e1d5}
.p-body{padding:1.2rem .1rem 1.5rem}
.p-brand{color:var(--red);letter-spacing:.14em}
.p-name{font-size:1.4rem}
.band-dark{background:#171310;padding:clamp(5rem,9vw,9rem) 0}
.band-dark h2{font-size:clamp(2.7rem,4.5vw,5rem);line-height:1.07}
.band-dark .lede{font-family:var(--font-story);font-size:1.3rem}
.insta{background:#eee9df}
.insta-tile{border-radius:0;border:0}
.shop,.product-page{background:#faf7f0}
.filter-bar,.filter-pill,.sort-pill{border-radius:0}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
@media(max-width:880px){.hero::before{background:linear-gradient(0deg,rgba(14,11,9,.88),rgba(14,11,9,.25))}}
@media(max-width:640px){.utility-bar{justify-content:center}.utility-bar .utility-links:last-child{display:none}.brand-logo{width:44px;height:44px}.hero{min-height:650px;padding:5rem 0 6rem}.hero h1{font-size:clamp(3.2rem,13vw,5rem)}.hero-actions .btn{width:100%}.cat-card-text{left:.7rem;bottom:.75rem}.cat-name{font-size:1.1rem}}
/* Home: la fotografia della hero prosegue dietro il titolo delle categorie. */
.hero{min-height:clamp(680px,78vw,900px);padding-bottom:clamp(13rem,19vw,19rem)}
.categories{position:relative;z-index:3;margin-top:clamp(-220px,-16vw,-150px);background:linear-gradient(to bottom,transparent 0,transparent 190px,#faf7f0 190px,#faf7f0 100%);padding-top:0}
.categories-heading{min-height:190px;display:flex;flex-direction:column;justify-content:flex-start;padding:0 0 2.2rem}
.categories-heading .eyebrow{color:#e8b5a8;margin-bottom:.8rem}
.categories-heading h2{color:#faf4e9;font-size:clamp(2.5rem,4.3vw,5rem);line-height:1.07}
.santuario-home-slider{position:relative;aspect-ratio:5/6;overflow:hidden;box-shadow:none;border:0;border-radius:0;margin:0}
.santuario-home-slider .slider-slide img{width:100%;height:100%;object-fit:cover}
.santuario-home-slider .slider-arrow{border-radius:0;font:32px/1 Georgia,serif}
.santuario-home-slider .slider-dots span{background:#e9d8cb}.santuario-home-slider .slider-dots span.active{background:var(--red)}
.santuario-home-slider figcaption{z-index:2}
@media(max-width:640px){.hero{min-height:760px;padding-bottom:18rem}.categories{margin-top:-190px;background:linear-gradient(to bottom,transparent 0,transparent 170px,#faf7f0 170px)}.categories-heading{min-height:170px;padding-bottom:1.5rem}.categories-heading h2{font-size:2.5rem}}
/* Pagine interne — ritmo editoriale coerente con la home. */
.editorial-page{background:#faf7f0;padding:0 0 clamp(4rem,7vw,8rem);border:0}
.editorial-page .page-intro{padding:clamp(4rem,7vw,7rem) 0 clamp(3rem,5vw,5rem);border-bottom:1px solid var(--line);margin-bottom:clamp(2.5rem,5vw,5rem)}
.editorial-page .page-title{font-size:clamp(3.4rem,6vw,7rem);line-height:1.03;margin:.75rem 0 1rem}
.editorial-page .page-intro>p:last-child{font-family:var(--font-story);font-size:1.25rem;color:var(--ink-soft)}
.editorial-page .entry-content:not(.entry-content--builder){max-width:850px;font-family:var(--font-story);font-size:clamp(1.1rem,1.35vw,1.25rem);line-height:1.8}
.editorial-page .entry-content h2,.editorial-page .entry-content h3{line-height:1.16;color:var(--ink);margin-top:2.8rem}
.editorial-page .entry-content h2{font-size:clamp(2rem,3vw,3.2rem)}
.editorial-page .entry-content h3{font-size:clamp(1.5rem,2.1vw,2.2rem)}
.page-related{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}
.page-related a{border:1px solid var(--line);padding:.9rem 1.2rem;text-decoration:none;text-transform:uppercase;font-size:.7rem;font-weight:700;letter-spacing:.1em}
.page-related a:hover{border-color:var(--red);color:var(--red)}
.about-page-hero{background:#eee9df;padding:clamp(5rem,8vw,9rem) 0}.about-page-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.about-page-copy h1{font-size:clamp(4rem,8vw,9rem);margin:.8rem 0 1.4rem}.about-page-copy>p:not(.eyebrow){font-family:var(--font-story);font-size:clamp(1.25rem,1.8vw,1.75rem);line-height:1.55;max-width:42ch}.about-page-copy .btn{margin-top:2rem}.about-page-photo{margin:0;aspect-ratio:4/5;overflow:hidden;background:#d9c8b5}.about-page-photo img{width:100%;height:100%;object-fit:cover}.about-page-story{background:#faf7f0;padding:clamp(4rem,8vw,8rem) 0}.about-page-story .entry-content{max-width:780px;margin:auto;font-family:var(--font-story);font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.75}.about-page-story p{margin:0 0 1.3rem}.about-page-cta{background:#171310;color:#f8f3eb;padding:clamp(4rem,7vw,7rem) 0}.about-page-cta h2{color:#f8f3eb;font-size:clamp(2.7rem,5vw,5rem);margin:.8rem 0 2rem}.contatti{background:#eee9df}.contatti h2{font-size:clamp(2.8rem,4.4vw,5rem);line-height:1.08}
@media(max-width:800px){.about-page-grid{grid-template-columns:1fr}.about-page-photo{max-height:600px}.editorial-page .page-title{font-size:clamp(3rem,12vw,5rem)}}
/* Prodotto: modulo a tendina e quattro strumenti visibili nel carosello. */
.product-inquiry{width:100%;margin-top:1.3rem;animation:cg-reveal .3s ease both}
.product-inquiry[hidden]{display:none}
@keyframes cg-reveal{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
.product-inquiry .form-card{background:#fffdf8;border:1px solid var(--line);padding:clamp(1.3rem,3vw,2.4rem)}
.product-inquiry h3{font-size:clamp(1.4rem,2vw,2rem)}
.related-carousel-section{padding:clamp(4rem,7vw,7rem) 0;background:#eee9df}
.related-carousel .featured-slide{flex:0 0 calc((100vw - 2 * clamp(1.25rem,5.2vw,6rem) - 3rem)/4)}
.related-carousel .featured-slide .p-thumb{aspect-ratio:4/5}
.related-carousel-section .section-head{margin-bottom:1rem}
/* Santuario: sei simboli, galleria masonry continua a tutta larghezza. */
.santuario-page{background:#171310}
.sacred-mark{font:2.4rem/1 Georgia,serif;color:#bf7561;display:block;min-height:37px}
.santuario-gallery-viewport{width:100%;overflow:hidden;margin:2.5rem 0 0}
.santuario-gallery-track{display:flex;width:max-content;animation:cg-gallery-drift 90s linear infinite}
.santuario-gallery-viewport:hover .santuario-gallery-track,.santuario-gallery-viewport:focus-within .santuario-gallery-track{animation-play-state:paused}
.santuario-gallery{display:grid;grid-template-columns:repeat(6,clamp(200px,25vw,370px));grid-template-rows:210px 120px;grid-auto-flow:column;gap:12px;margin:0 12px 0 0;width:max-content}
.santuario-gallery .gallery-tile{width:100%;height:100%;margin:0;aspect-ratio:auto;border:0;border-radius:0}
.santuario-gallery .gallery-tile:nth-child(3n + 1){grid-row:span 2}
.santuario-gallery .gallery-tile:nth-child(3n + 2){grid-row:span 1}
.santuario-gallery .gallery-tile:nth-child(3n){grid-row:span 1}
.santuario-gallery .gallery-tile img{width:100%;height:100%;object-fit:cover}
.santuario-gallery .gallery-tile figcaption,.santuario-slider figcaption{display:none}
@keyframes cg-gallery-drift{to{transform:translateX(-50%)}}
@media(max-width:1000px){.related-carousel .featured-slide{flex-basis:calc((100vw - 2 * clamp(1.25rem,5.2vw,6rem) - 1rem)/2)}}
@media(max-width:620px){.related-carousel .featured-slide{flex-basis:76vw}.santuario-gallery{grid-template-columns:repeat(6,220px);grid-template-rows:145px 90px}}
@media(prefers-reduced-motion:reduce){.santuario-gallery-track{animation:none}.santuario-gallery-viewport{overflow-x:auto}}
.santuario-gallery{grid-template-columns:repeat(4,clamp(200px,25vw,370px))}
@media(max-width:620px){.santuario-gallery{grid-template-columns:repeat(4,220px)}}
/* Full-width sanctuary features, with symbols that read at a glance. */
.santuario-page .feature-grid{position:relative;left:50%;margin-left:-50vw;width:100vw;margin-top:clamp(3rem,6vw,6rem);border-left:0;border-right:0}
.santuario-page .feature{min-height:250px;padding:clamp(2rem,3vw,4rem);justify-content:flex-start}
.santuario-page .sacred-mark{font-size:clamp(3rem,4.2vw,5rem);line-height:1.1;min-height:75px;color:#c77c65}
.santuario-page .feature h3{font-size:clamp(1.15rem,1.5vw,1.8rem);line-height:1.2}
.santuario-page .feature p{max-width:32ch}
/* Editorial footer. */
.site-footer{background:#171310;color:#eee7dd}
.site-footer .wrap{max-width:1600px}
.footer-invite{background:#8b2924;border-top:1px solid #a24b42;border-bottom:1px solid #a24b42;padding:clamp(3.2rem,5.5vw,6rem) 0}
.footer-invite-inner{display:flex;align-items:end;justify-content:space-between;gap:2rem}
.footer-invite .eyebrow{color:#eed4c7}
.footer-invite h2{color:#fff8ee;font-size:clamp(2.4rem,4.4vw,5rem);line-height:1.08;max-width:15ch;margin:.7rem 0 0}
.footer-invite .btn{flex:none;border-color:#f6e8db}
.footer-main{display:grid;grid-template-columns:minmax(250px,1.5fr) repeat(3,minmax(140px,1fr));gap:clamp(2rem,5vw,5rem);padding-top:clamp(4rem,6vw,6rem);padding-bottom:clamp(4rem,6vw,6rem)}
.footer-wordmark{display:inline-flex;align-items:center;gap:1rem;color:#fff8ee;text-decoration:none;font-family:var(--font-heading);font-size:clamp(1.8rem,2.7vw,2.8rem);line-height:.94;letter-spacing:-.045em}
.footer-wordmark img{width:58px;height:58px;object-fit:contain;background:#f9f2e8;border-radius:50%}
.footer-identity p{color:#b8a99d;line-height:1.7;max-width:32ch;margin:1.5rem 0}
.footer-social{color:#e6b2a1;text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.footer-column h3{font-family:var(--font-body);font-size:.68rem;letter-spacing:.19em;text-transform:uppercase;color:#d9937e;margin:.4rem 0 .55rem}
.footer-column a{color:#f0e7dc;text-decoration:none;font-size:.93rem;line-height:1.4;transition:color .2s}
.footer-column a:hover,.footer-social:hover{color:#e99d81}
.footer-contact p{color:#ad9f94;line-height:1.55;font-size:.85rem;margin-top:.8rem;max-width:22ch}
.footer-lower{border-top:1px solid #51443c;padding-top:1.5rem;padding-bottom:1.6rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#9f9085;font-size:.72rem;letter-spacing:.03em}
@media(max-width:1050px){.footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.santuario-page .feature{min-height:210px}.footer-invite-inner{align-items:flex-start;flex-direction:column}.footer-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 1.2rem}.footer-identity{grid-column:1/-1}.footer-contact{grid-column:1/-1}.footer-lower{flex-direction:column}}
/* Clear mandatory choices and remove spacing inherited from the former footer. */
.santuario-choice{border:1px solid var(--line);padding:1rem 1.1rem;margin:0 0 1.2rem;background:color-mix(in srgb,var(--red) 5%,var(--paper))}
.santuario-choice legend{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);padding:0 .3rem}
.santuario-choice label{display:inline-flex;gap:.5rem;align-items:center;margin:.5rem 1.4rem .1rem 0;font-size:.88rem;cursor:pointer}
.santuario-choice input{accent-color:var(--red)}
.site-footer{padding:0}
/* Crisp visual when no high-resolution hero photograph has been supplied. */
.hero-media.is-fallback{background:radial-gradient(circle at 78% 40%,#813d27 0,#40231b 35%,#171310 76%);overflow:hidden}
.hero-media.is-fallback::before{content:"";position:absolute;right:14%;top:-20%;height:145%;width:clamp(80px,11vw,150px);transform:rotate(21deg);border-radius:32px;background:linear-gradient(90deg,#1f100c,#754324 18%,#a06534 49%,#2c1510 90%);box-shadow:0 0 80px rgba(0,0,0,.4)}
.hero-media.is-fallback::after{content:"";position:absolute;right:4%;bottom:-37%;width:clamp(420px,47vw,770px);aspect-ratio:1;border-radius:48% 46% 47% 50%;transform:rotate(-22deg);border:clamp(25px,3vw,48px) solid #774028;background:radial-gradient(circle at 50% 48%,#261912 0 12%,#bc7742 13% 17%,#8c452b 19% 55%,#331914 64%);box-shadow:inset 0 0 100px rgba(0,0,0,.7),0 0 110px rgba(0,0,0,.45)}
@media(max-width:700px){.hero-media.is-fallback::before{right:-4%;opacity:.7}.hero-media.is-fallback::after{right:-55%;opacity:.65}}
/* The Home photograph continues behind the category cards, including WPBakery rows. */
.hero{overflow:visible;z-index:1}
.hero-media{bottom:-430px;overflow:hidden}
.hero::before{bottom:-430px}
.categories{z-index:2;background:linear-gradient(to bottom,transparent 0,transparent min(560px,75vw),#faf7f0 min(560px,75vw),#faf7f0 100%)}
.categories .wrap{position:relative;z-index:1}
@media(max-width:640px){.hero-media,.hero::before{bottom:-520px}.categories{background:linear-gradient(to bottom,transparent 0,transparent 650px,#faf7f0 650px,#faf7f0 100%)}}
/* No visible captions over photographs; category titles remain navigation labels. */
.art figcaption,.santuario-home-slider figcaption,.gallery-photo figcaption,.gallery-tile figcaption,.slider-slide figcaption{display:none!important}
/* Shop cards have a visible frame and a clear focus/hover state. */
.shop .p-card{border:1px solid #c7b8a8;background:#fffdf8;box-shadow:0 2px 12px rgba(34,22,16,.07);transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.shop .p-card:hover,.shop .p-card:focus-within{border-color:#a3271d;box-shadow:0 16px 38px rgba(34,22,16,.19);transform:translateY(-6px)}
.shop .p-card .p-thumb{overflow:hidden;border-bottom:1px solid #c7b8a8}
.shop .p-card .p-thumb img{transition:transform .4s ease}
.shop .p-card:hover .p-thumb img,.shop .p-card:focus-within .p-thumb img{transform:scale(1.055)}
.shop .p-card .p-body{padding:1.2rem 1.25rem 1.5rem}
/* WPBakery page components use the same wide sections as the theme templates. */
.santuario-builder{padding:clamp(4rem,7vw,7rem) 0}
.santuario-builder h1{font-size:clamp(3rem,7vw,7rem);color:#faf4e9;margin:.5rem 0 2.5rem}
.santuario-builder .santuario-slider img{width:100%;height:100%;object-fit:cover}
.santuario-builder .santuario-slider .slider-slide{margin:0}
.santuario-builder .santuario-empty-photo{background:linear-gradient(145deg,#513527,#211814)}
.santuario-builder .santuario-cta{margin-top:3rem}
.shop-builder-content{margin:2rem 0}
/* Santuario is a regular full-width WPBakery page; each row stays editable. */
.santuario-native-page{background:#171310;color:#f6efe5;overflow:hidden}
.santuario-native-page h1,.santuario-native-page h2,.santuario-native-page h3{color:#f6efe5}
.santuario-native-page>.vc_row{margin:0!important}
.santuario-native-page>.vc_row:not(.cg-san-features):not(.cg-san-gallery){padding-left:clamp(1.25rem,5vw,7rem);padding-right:clamp(1.25rem,5vw,7rem)}
.santuario-native-page>.vc_row:not(.cg-san-features):not(.cg-san-gallery)>.vc_column_container{float:none}
.santuario-native-page .wpb_content_element{margin-bottom:0}
.santuario-native-page .vc_column-inner{padding:0 12px}
.santuario-native-page .eyebrow{color:#d68b75}
.cg-san-intro{padding-top:clamp(4rem,7vw,8rem);padding-bottom:clamp(4rem,7vw,7rem)}
.cg-san-intro .vc_col-sm-6:first-child .wpb_wrapper{max-width:650px}
.cg-san-intro h1{font-size:clamp(4rem,8vw,9rem);line-height:.98;letter-spacing:-.055em;margin:1rem 0 2.4rem}
.cg-san-intro p:not(.eyebrow){font:clamp(1.1rem,1.5vw,1.45rem)/1.65 var(--font-story);color:#dfd0c1;margin:0 0 1.3rem}
.cg-san-intro .santuario-slider{min-height:550px;height:clamp(550px,55vw,750px)}
.cg-san-intro .santuario-slider img{width:100%;height:100%;object-fit:cover}
.cg-san-features-title{padding-top:2rem;padding-bottom:2rem}
.cg-san-features-title h2,.cg-san-gallery-heading h2{font-size:clamp(2.6rem,5vw,6rem);line-height:1.08;margin:.3rem 0 0}
.cg-san-features{background:#544038}
.cg-san-features .vc_col-sm-4{padding:1px}
.cg-san-features .vc_column-inner{background:#241b16;min-height:300px;height:100%;padding:clamp(2rem,3vw,4rem)}
.cg-san-feature .sacred-mark{font-size:clamp(3.4rem,5vw,5.5rem);line-height:1;color:#d48c76;display:block;margin:0 0 1.4rem}
.cg-san-feature h3{font-size:clamp(1.4rem,2vw,2.2rem);line-height:1.15;margin:0 0 1rem}
.cg-san-feature p{color:#d8c6b8;line-height:1.65;max-width:40ch}
.cg-san-gallery-heading{padding-top:clamp(4rem,7vw,7rem);padding-bottom:2rem}
.cg-san-gallery>.vc_column_container>.vc_column-inner{padding:0}
.cg-san-gallery .santuario-gallery-viewport{margin:0}
.cg-san-cta{text-align:center;padding-top:clamp(5rem,8vw,9rem);padding-bottom:clamp(5rem,8vw,9rem)}
.cg-san-cta h2{font-size:clamp(2.4rem,4vw,5rem);line-height:1.1}
.cg-san-cta p{font:clamp(1.1rem,1.6vw,1.5rem)/1.6 var(--font-story);color:#d8c6b8}
.cg-san-cta .form-card{max-width:700px;margin:2.5rem auto 0;text-align:left}
@media(max-width:767px){.cg-san-intro .vc_col-sm-6+.vc_col-sm-6{margin-top:2rem}.cg-san-features .vc_column-inner{min-height:0;padding:2rem}.cg-san-cta{padding-bottom:5rem}}
/* Santuario: separate title and balanced text/photo columns, including WPBakery wrappers. */
.santuario-native-page>.cg-san-title{padding-top:clamp(4rem,6vw,7rem);padding-bottom:clamp(2rem,3vw,3rem)}
.santuario-native-page .cg-san-title h1{font-size:clamp(3.5rem,calc(7vw * var(--cg-heading-scale,1)),calc(8rem * var(--cg-heading-scale,1)));line-height:var(--cg-heading-line,1.08);letter-spacing:-.055em;margin:.6rem 0 0;white-space:normal;overflow-wrap:normal}
.santuario-native-page>.cg-san-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(2rem,6vw,7rem);align-items:start;padding-top:0;padding-bottom:clamp(5rem,8vw,9rem)}
.santuario-native-page>.cg-san-intro::before,.santuario-native-page>.cg-san-intro::after,.santuario-native-page>.cg-san-features::before,.santuario-native-page>.cg-san-features::after{display:none}
.santuario-native-page>.cg-san-intro>.vc_column_container{width:100%!important;float:none!important;min-width:0;max-width:100%;padding:0}
.santuario-native-page>.cg-san-intro>.vc_column_container>.vc_column-inner{width:100%;padding:0}
.cg-san-intro .vc_col-sm-6:first-child{padding-top:clamp(3rem,7vw,7rem)}
.cg-san-intro .vc_col-sm-6:first-child .wpb_wrapper{max-width:580px}
.cg-san-intro h2{font-size:clamp(2.2rem,calc(3.7vw * var(--cg-heading-scale,1)),calc(4rem * var(--cg-heading-scale,1)));line-height:var(--cg-heading-line,1.08);margin:0 0 1.7rem;max-width:14ch}
.cg-san-intro p:not(.eyebrow){font-size:calc(clamp(1rem,1.5vw,1.4rem) * var(--cg-text-scale,1));line-height:var(--cg-text-line,1.65)}
.cg-san-intro .santuario-slider{min-width:0;min-height:0;height:clamp(440px,53vw,680px);overflow:hidden}
.cg-san-intro .santuario-slider .slider-slide{margin:0}
.cg-san-intro .santuario-slider img{display:block;max-width:100%;width:100%;height:100%;object-fit:cover}
.cg-san-intro .btn{display:inline-flex;margin-top:.5rem;font-family:var(--font-body);font-size:.73rem;line-height:1.1}
.santuario-native-page>.cg-san-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px}
.santuario-native-page>.cg-san-features>.vc_column_container{float:none!important;width:100%!important;min-width:0;padding:0}
.cg-san-features .vc_column-inner{box-sizing:border-box;min-width:0}
.cg-san-feature h3{font-size:clamp(1.25rem,calc(1.9vw * var(--cg-heading-scale,1)),2rem);overflow-wrap:break-word}
/* Typography settings: overall text size plus independent heading size and line spacing. */
body{font-size:calc(1rem * var(--cg-text-scale,1));line-height:var(--cg-text-line,1.65)}
.hero h1{font-size:clamp(calc(3.2rem * var(--cg-heading-scale,1)),calc(7.5vw * var(--cg-heading-scale,1)),calc(8rem * var(--cg-heading-scale,1)));line-height:var(--cg-heading-line,1.08)}
.santuario-native-page h2,.santuario-native-page h3,.section-head h2,.shop-head h2{line-height:var(--cg-heading-line,1.08)}
.santuario-native-page .cg-san-features-title h2,.santuario-native-page .cg-san-gallery-heading h2{font-size:clamp(calc(2.5rem * var(--cg-heading-scale,1)),calc(5vw * var(--cg-heading-scale,1)),calc(6rem * var(--cg-heading-scale,1)))}
.site-nav{min-height:84px;gap:clamp(.8rem,2vw,2rem)}
.site-nav .brand-name{font-family:var(--font-heading);font-size:clamp(1.1rem,2.1vw,1.75rem);font-weight:600;letter-spacing:-.03em;white-space:nowrap}
.site-nav .nav-links{flex-wrap:nowrap;gap:clamp(.65rem,1.6vw,1.6rem)}
@media(max-width:1050px){.site-nav .brand-name{font-size:1.2rem}.site-nav .nav-links{gap:.7rem;font-size:.72rem}}
@media(max-width:880px){.site-nav .brand-name{font-size:1.25rem}}
@media(max-width:767px){.santuario-native-page>.cg-san-intro{grid-template-columns:1fr;row-gap:2.5rem}.cg-san-intro .vc_col-sm-6:first-child{padding-top:0}.cg-san-intro .santuario-slider{height:500px}.santuario-native-page>.cg-san-features{grid-template-columns:1fr}.site-nav{min-height:70px}.site-nav .nav-links{flex-wrap:wrap}}
@media(max-width:880px){.site-nav .nav-links{font-size:1.02rem;flex-wrap:wrap}}

/* The selected WordPress menu, including its actual submenu hierarchy. */
.site-nav .primary-menu,.site-nav .primary-menu .sub-menu{list-style:none;margin:0;padding:0}
.site-nav .primary-menu{display:flex;align-items:center;gap:clamp(.65rem,1.6vw,1.6rem)}
.site-nav .primary-menu li{position:relative;list-style:none;margin:0}
.site-nav .primary-menu>li{display:flex;align-items:center}
.site-nav .primary-menu .sub-menu{position:absolute;left:0;top:100%;min-width:220px;padding:.55rem 0;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);visibility:hidden;opacity:0;transform:translateY(7px);transition:opacity .2s,transform .2s;z-index:70}
.site-nav .primary-menu .sub-menu .sub-menu{left:100%;top:0}
.site-nav .primary-menu .sub-menu a{display:block;padding:.7rem 1rem;white-space:normal;letter-spacing:.03em}
.site-nav .primary-menu .sub-menu a:hover,.site-nav .primary-menu .sub-menu a:focus{background:var(--cream)}
.site-nav .primary-menu li:hover>.sub-menu,.site-nav .primary-menu li:focus-within>.sub-menu,.site-nav .primary-menu li.submenu-open>.sub-menu{visibility:visible;opacity:1;transform:none}
.site-nav .submenu-toggle{border:0;background:transparent;color:inherit;cursor:pointer;padding:.45rem;line-height:1}
.site-nav .submenu-toggle:focus-visible,.nav-toggle:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.builder-page{width:100%;max-width:100%;min-width:0;overflow:clip}
.builder-page .vc_row,.builder-page .vc_section{max-width:100%}
.builder-page img,.builder-page iframe,.santuario-native-page iframe{max-width:100%}
.builder-page .vc_column_container,.builder-page .vc_column-inner{min-width:0}
.site-nav .nav-links{min-width:0}
.site-nav .brand{min-width:0}
@media(max-width:1180px){
  .site-nav{flex-wrap:wrap;gap:.5rem;justify-content:space-between}
  .site-nav .nav-toggle{display:flex;order:2;margin-left:auto}
  .site-nav .nav-icons{order:3}
  .site-nav .nav-links{display:none;order:4;flex-basis:100%;width:100%;margin:0;padding:.5rem 0 0;border-top:1px solid var(--line);max-height:calc(100dvh - 90px);overflow-y:auto}
  .site-nav .nav-links.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .site-nav .primary-menu{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:0}
  .site-nav .primary-menu>li{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line-soft)}
  .site-nav .primary-menu li>a{padding:.8rem .25rem;flex:1;white-space:normal}
  .site-nav .primary-menu .sub-menu,.site-nav .primary-menu .sub-menu .sub-menu{position:static;flex-basis:100%;width:100%;min-width:0;display:none;visibility:visible;opacity:1;transform:none;box-shadow:none;border:0;background:transparent;padding:0 0 .3rem 1rem}
  .site-nav .primary-menu li:hover>.sub-menu,.site-nav .primary-menu li:focus-within>.sub-menu{display:none}
  .site-nav .primary-menu li.submenu-open>.sub-menu,.site-nav .primary-menu li.submenu-open:hover>.sub-menu,.site-nav .primary-menu li.submenu-open:focus-within>.sub-menu{display:block}
  .site-nav .primary-menu .sub-menu li>a{display:block;padding:.65rem .25rem}
  .site-nav .nav-links>.nav-drop{width:100%}
  .site-nav .nav-drop .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;display:none;padding:0 0 0 1rem}
  .site-nav .nav-drop.is-open .dropdown{display:block}
  .site-nav .nav-links>a{display:block;padding:.85rem .25rem;border-bottom:1px solid var(--line-soft)}
}
@media(max-width:767px){
  .santuario-native-page>.cg-san-intro{grid-template-columns:minmax(0,1fr)}
  .santuario-native-page>.cg-san-features{grid-template-columns:minmax(0,1fr)}
  .santuario-native-page>.vc_row:not(.cg-san-features):not(.cg-san-gallery){padding-left:1.25rem;padding-right:1.25rem}
  .santuario-native-page .cg-san-title h1{font-size:clamp(2.8rem,12vw,5rem);overflow-wrap:anywhere}
  .cg-san-intro .santuario-slider{height:clamp(300px,90vw,500px)}
  .builder-page .vc_row:not(.vc_row-fluid){max-width:100%}
  .hero h1,.editorial-page .page-title{overflow-wrap:anywhere}
}
@media(max-width:440px){.site-nav{padding-left:1rem;padding-right:1rem}.site-nav .brand-name{font-size:1rem}.site-nav .brand-logo{width:38px;height:38px}.site-nav .nav-icons{gap:.5rem}}

/* WPBakery rows may arrive on pages without the legacy Santuario metadata.
   Keep every ordinary section on the same inset as the site's .wrap. */
.builder-page>.vc_row{margin-left:0!important;margin-right:0!important;width:100%;max-width:100%}
.builder-page:not(.santuario-native-page)>.vc_row:not(.cg-san-features):not(.cg-san-gallery){padding-left:clamp(1.25rem,5vw,7rem);padding-right:clamp(1.25rem,5vw,7rem)}
.builder-page>.vc_row>.vc_column_container{min-width:0}
.santuario-native-page>.cg-san-title,.santuario-native-page>.cg-san-intro,.santuario-native-page>.cg-san-features-title,.santuario-native-page>.cg-san-gallery-heading,.santuario-native-page>.cg-san-cta{padding-left:clamp(1.25rem,5vw,7rem);padding-right:clamp(1.25rem,5vw,7rem)}
.santuario-native-page>.cg-san-title .vc_column-inner,.santuario-native-page>.cg-san-features-title .vc_column-inner,.santuario-native-page>.cg-san-gallery-heading .vc_column-inner{padding-left:0;padding-right:0}
@media(max-width:767px){
  .builder-page:not(.santuario-native-page)>.vc_row:not(.cg-san-features):not(.cg-san-gallery),
  .santuario-native-page>.cg-san-title,.santuario-native-page>.cg-san-intro,.santuario-native-page>.cg-san-features-title,.santuario-native-page>.cg-san-gallery-heading,.santuario-native-page>.cg-san-cta{padding-left:1.25rem;padding-right:1.25rem}
  .santuario-native-page>.cg-san-features{grid-template-columns:minmax(0,1fr)}
}

/* Chi sono: wide editorial opening and one readable story column. */
.about-page-hero{background:#faf7f0;padding:clamp(5rem,9vw,10rem) 0 clamp(5rem,8vw,9rem)}
.about-page-hero .wrap,.about-page-story .wrap{max-width:1320px}
.about-page-grid--text{display:block}
.about-page-grid--text .about-page-copy{max-width:780px}
.about-page-copy h1{margin:1rem 0 2.3rem;line-height:1.02}
.about-page-copy>p:not(.eyebrow){max-width:40ch;line-height:1.55}
.about-page-story{background:#fffdf8;padding:clamp(4rem,9vw,9rem) 0}
.about-page-story .entry-content{max-width:760px;margin-inline:auto;line-height:1.75}
.about-page-story .entry-content>.vc_row{width:100%;max-width:100%;margin-left:0!important;margin-right:0!important}
.about-page-story .entry-content>.vc_row>.vc_column_container{float:none;width:100%!important;max-width:100%;min-width:0}
.about-page-story .entry-content>.vc_row>.vc_column_container>.vc_column-inner{padding-left:0;padding-right:0}
.about-page-story .entry-content img{max-width:100%;height:auto}
@media(max-width:800px){.about-page-hero{padding:5rem 0}.about-page-story{padding:4rem 0}.about-page-photo{margin-top:2rem}}
