/*
Theme Name: Acherer Patisserie.Blumen
Theme URI: https://acherer.com
Author: TALWERK
Description: Tema su misura per Acherer Patisserie.Blumen — one-page editoriale, convertito dal prototipo HTML.
Version: 6.6.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: acherer
*/

  :root {
    --rose: #d00c78;
    --rose-deep: #a40760;
    --rose-soft: #e89bb8;
    --rose-blush: #fae0ec;
    --rose-whisper: #fdf2f7;
    --cream: #faf6f1;
    --paper: #f4ede4;
    --paper-warm: #ede2d3;
    --ink: #1f1418;
    --ink-soft: #4a3338;
    --ink-mute: #7a5e64;
    --gold: #b8956a;
    --gold-deep: #8a6b48;
    --botanical: #6b7a5a;
    --shadow-rose: rgba(200, 64, 122, 0.15);
    --shadow-deep: rgba(31, 20, 24, 0.12);
    --font-display: 'Fraunces', serif;
    --font-serif: 'Cormorant Garamond', serif;
    --font-sans: 'Inter Tight', sans-serif;
    --sz-hero: 1;
    --sz-title: 1;
    --sz-card: 1;
    --sz-body: 1;
    --sz-small: 1;
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html, body {
    /* Rete di sicurezza: un solo elemento troppo largo farebbe scorrere
       di lato l'intera pagina su telefono. */
    overflow-x: hidden;
    max-width: 100%;
  }

  html {
    scroll-behavior: smooth;
    /* La barra di navigazione è fissa in alto: senza questo margine
       un collegamento a una sezione la fa finire sotto alla barra. */
    scroll-padding-top: 6.5rem;
  }

  ::selection { background: var(--rose); color: var(--cream); }

  body {
    background: var(--cream);
    color: var(--ink);
    font-family: var(--font-sans);
    font-weight: 300;
    overflow-x: hidden;
    cursor: none;
  }

  /* Custom cursor */
  .cursor {
    position: fixed;
    width: 8px;
    height: 8px;
    background: var(--rose);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    transition: transform 0.15s ease, width 0.3s, height 0.3s, background 0.3s;
    transform: translate(-50%, -50%);
    mix-blend-mode: difference;
  }

  .cursor-ring {
    position: fixed;
    width: 36px;
    height: 36px;
    border: 1px solid var(--rose);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9998;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), width 0.3s, height 0.3s, opacity 0.3s;
    transform: translate(-50%, -50%);
    opacity: 0.6;
  }

  body.cursor-hover .cursor {
    width: 4px;
    height: 4px;
  }

  body.cursor-hover .cursor-ring {
    width: 60px;
    height: 60px;
    opacity: 1;
    background: rgba(200, 64, 122, 0.05);
  }

  @media (max-width: 968px) {
    body { cursor: auto; }
    .cursor, .cursor-ring { display: none; }
  }

  /* Paper grain overlay */
  body::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
    opacity: 0.05;
    pointer-events: none;
    z-index: 1;
    mix-blend-mode: multiply;
  }

  a, button { cursor: none; }

  /* === LOGO === */
  .monogram {
    display: inline-block;
    width: 32px;
    height: 32px;
    position: relative;
    vertical-align: middle;
  }

  .monogram svg { width: 100%; height: 100%; display: block; }

  /* === NAVIGATION === */
  nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding: 1.5rem 3rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    backdrop-filter: blur(20px) saturate(180%);
    background: rgba(250, 246, 241, 0.75);
    border-bottom: 1px solid rgba(200, 64, 122, 0.08);
    transition: padding 0.4s, background 0.4s;
  }

  nav.scrolled {
    padding: 1rem 3rem;
    background: rgba(250, 246, 241, 0.92);
  }

  .logo-wrap {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    text-decoration: none;
    color: var(--rose);
  }

  .logo-svg {
    width: 165px;
    height: auto;
    display: block;
    color: var(--rose);
    transition: opacity 0.3s;
  }

  .logo-svg:hover { opacity: 0.85; }

  .logo-tag {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(0.78rem * var(--sz-small));
    letter-spacing: 0.05em;
    color: var(--ink-soft);
    margin-left: 0.6rem;
    border-left: 1px solid rgba(208, 10, 120, 0.3);
    padding-left: 0.8rem;
    line-height: 1.2;
  }

  .nav-links {
    display: flex;
    gap: 2.8rem;
    list-style: none;
    font-size: calc(0.72rem * var(--sz-small));
    letter-spacing: 0.24em;
    text-transform: uppercase;
    font-weight: 500;
  }

  .nav-links a {
    color: var(--ink-soft);
    text-decoration: none;
    position: relative;
    padding: 0.3rem 0;
    overflow: hidden;
    display: inline-block;
  }

  .nav-links a span {
    display: inline-block;
    transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
  }

  .nav-links a::after {
    content: attr(data-text);
    position: absolute;
    top: 100%;
    left: 0;
    color: var(--rose);
    transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
  }

  .nav-links a:hover span { transform: translateY(-100%); }
  .nav-links a:hover::after { transform: translateY(-100%); }

  .shop-btn {
    padding: 0.8rem 1.7rem;
    background: var(--ink);
    color: var(--cream);
    text-decoration: none;
    font-size: calc(0.68rem * var(--sz-small));
    letter-spacing: 0.28em;
    text-transform: uppercase;
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
    font-weight: 500;
    border: 1px solid var(--ink);
  }

  .shop-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--rose);
    transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
  }

  .shop-btn span {
    position: relative;
    z-index: 1;
  }

  .shop-btn:hover::before { transform: translateX(0); }

  /* === HERO === */
  .hero {
    min-height: 100vh;
    padding: 9rem 3rem 4rem;
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    overflow: hidden;
  }

  /* Decorative monogram watermark */
  .hero-bignumber {
    position: absolute;
    bottom: -2rem;
    right: -2rem;
    width: 420px;
    height: 420px;
    color: var(--rose-blush);
    opacity: 0.55;
    z-index: 0;
    pointer-events: none;
  }

  .hero-bignumber svg { width: 100%; height: 100%; display: block; }

  .hero-text { position: relative; z-index: 2; }

  .hero-eyebrow {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--rose);
    margin-bottom: 2.5rem;
    font-weight: 500;
  }

  .hero-eyebrow::before {
    content: '';
    width: 60px;
    height: 1px;
    background: var(--rose);
  }

  .hero-eyebrow .pulse {
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--rose);
    border-radius: 50%;
    animation: pulse 2s ease-in-out infinite;
  }

  @keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.4); }
  }

  .hero h1 {
    font-family: var(--font-display);
    font-size: calc(clamp(3.5rem, 8vw, 7.5rem) * var(--sz-hero));
    line-height: 0.92;
    font-weight: 300;
    color: var(--ink);
    margin-bottom: 2.5rem;
    letter-spacing: -0.035em;
  }

  .hero h1 .word {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
  }

  .hero h1 .word > span {
    display: inline-block;
    transform: translateY(110%);
    animation: wordReveal 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  }

  .hero h1 em {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    color: var(--rose);
    position: relative;
  }

  .hero h1 em::after {
    content: '';
    position: absolute;
    bottom: 0.15em;
    left: -0.05em;
    right: -0.05em;
    height: 0.08em;
    background: var(--rose-soft);
    opacity: 0.4;
    z-index: -1;
    transform: skewY(-1deg);
  }

  @keyframes wordReveal {
    to { transform: translateY(0); }
  }

  .hero-subtitle {
    font-size: calc(1.05rem * var(--sz-body));
    line-height: 1.75;
    color: var(--ink-soft);
    max-width: 460px;
    margin-bottom: 3rem;
    font-weight: 300;
    opacity: 0;
    animation: fadeUp 1s ease-out 0.8s forwards;
  }

  .hero-cta {
    display: flex;
    gap: 2rem;
    align-items: center;
    flex-wrap: wrap;
    opacity: 0;
    animation: fadeUp 1s ease-out 1s forwards;
  }

  .btn-primary {
    background: var(--rose);
    color: var(--cream);
    padding: 1.2rem 2.6rem;
    text-decoration: none;
    font-size: calc(0.72rem * var(--sz-small));
    letter-spacing: 0.3em;
    text-transform: uppercase;
    transition: all 0.4s;
    position: relative;
    overflow: hidden;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
  }

  .btn-primary::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--ink);
    transform: translateY(100%);
    transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
  }

  .btn-primary span,
  .btn-primary svg { position: relative; z-index: 1; }

  .btn-primary svg {
    width: 16px;
    height: 16px;
    transition: transform 0.4s;
  }

  .btn-primary:hover::before { transform: translateY(0); }
  .btn-primary:hover svg { transform: translateX(4px); }

  .btn-link {
    color: var(--ink);
    text-decoration: none;
    font-size: calc(0.72rem * var(--sz-small));
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    position: relative;
    padding-bottom: 6px;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
  }

  .btn-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--ink);
    transform-origin: right;
    transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
  }

  .btn-link:hover::after {
    transform-origin: left;
    animation: linkUnderline 0.8s cubic-bezier(0.65, 0, 0.35, 1);
  }

  @keyframes linkUnderline {
    0% { transform: scaleX(1); transform-origin: right; }
    50% { transform: scaleX(0); transform-origin: right; }
    51% { transform-origin: left; }
    100% { transform: scaleX(1); transform-origin: left; }
  }

  /* Hero visual stack */
  .hero-visual {
    position: relative;
    height: 80vh;
    z-index: 1;
  }

  .hero-image-main {
    position: absolute;
    top: 0;
    right: 0;
    width: 75%;
    height: 90%;
    background-image: url('assets/images/hero-panettone.jpg');
    background-size: cover;
    background-position: center;
    box-shadow: 0 40px 80px rgba(31, 20, 24, 0.25);
    overflow: hidden;
    opacity: 0;
    animation: imageReveal 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.4s forwards;
  }

  .hero-image-main::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(31, 20, 24, 0.4) 100%);
  }

  @keyframes imageReveal {
    from { opacity: 0; transform: translateY(40px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }

  .hero-image-secondary {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 45%;
    height: 50%;
    background-image: url('assets/images/hero-fiori.jpg');
    background-size: cover;
    background-position: center;
    box-shadow: 0 30px 60px rgba(200, 64, 122, 0.25);
    border: 8px solid var(--cream);
    z-index: 2;
    opacity: 0;
    animation: imageReveal 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.7s forwards;
  }

  /* Hero meta tag floating */
  .hero-meta {
    position: absolute;
    top: 2rem;
    left: 2rem;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    background: var(--cream);
    padding: 1rem 1.3rem;
    box-shadow: 0 15px 40px rgba(200, 64, 122, 0.2);
    opacity: 0;
    animation: fadeUp 1s ease-out 1.2s forwards;
  }

  .hero-meta-label {
    font-size: calc(0.62rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--rose);
    font-weight: 500;
  }

  .hero-meta-value {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1.1rem * var(--sz-body));
    color: var(--ink);
  }

  /* Award badge */
  .hero-award {
    position: absolute;
    top: 30%;
    right: -1.5rem;
    background: var(--cream);
    padding: 1.5rem 1.3rem;
    box-shadow: 0 25px 60px rgba(200, 64, 122, 0.25);
    transform: rotate(4deg);
    z-index: 4;
    width: 175px;
    text-align: center;
    border: 1px solid var(--rose-blush);
    opacity: 0;
    animation: badgeIn 1s cubic-bezier(0.16, 1, 0.3, 1) 1.4s forwards;
  }

  @keyframes badgeIn {
    from { opacity: 0; transform: rotate(0deg) scale(0.8); }
    to { opacity: 1; transform: rotate(4deg) scale(1); }
  }

  .hero-award .num {
    font-family: var(--font-display);
    font-size: calc(3rem * var(--sz-title));
    color: var(--rose);
    line-height: 1;
    font-weight: 400;
    font-style: italic;
  }

  .hero-award .label {
    font-size: calc(0.6rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--ink);
    margin-top: 0.6rem;
    font-weight: 500;
  }

  .hero-award .source {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(0.85rem * var(--sz-small));
    color: var(--ink-soft);
    margin-top: 0.3rem;
  }

  .hero-award .years {
    font-size: calc(0.6rem * var(--sz-small));
    letter-spacing: 0.2em;
    color: var(--rose);
    margin-top: 0.5rem;
    font-weight: 500;
  }

  .scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 3rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: calc(0.65rem * var(--sz-small));
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--ink-soft);
    z-index: 5;
  }

  .scroll-line {
    width: 60px;
    height: 1px;
    background: rgba(31, 20, 24, 0.2);
    position: relative;
    overflow: hidden;
  }

  .scroll-line::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--rose);
    animation: scrollLine 2.5s ease-in-out infinite;
  }

  @keyframes scrollLine {
    0%, 100% { transform: translateX(-100%); }
    50% { transform: translateX(0); }
  }

  /* === MARQUEE === */
  .marquee {
    padding: 2.5rem 0;
    background: var(--ink);
    color: var(--cream);
    overflow: hidden;
    border-top: 1px solid rgba(200, 64, 122, 0.3);
    border-bottom: 1px solid rgba(200, 64, 122, 0.3);
  }

  .marquee-track {
    display: flex;
    gap: 0;
    white-space: nowrap;
    animation: scroll 50s linear infinite;
    font-family: var(--font-display);
    font-size: calc(2.2rem * var(--sz-title));
    font-weight: 300;
    letter-spacing: 0.02em;
    align-items: center;
  }

  .marquee-track > span {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
  }

  .marquee-item {
    padding: 0 2.5rem;
    display: inline-flex;
    align-items: center;
    gap: 1rem;
  }

  .marquee-track em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
  }

  .marquee-mark {
    width: 30px;
    color: var(--rose);
    flex-shrink: 0;
  }

  .marquee-mark svg { width: 100%; height: auto; display: block; overflow: visible; }

  @keyframes scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
  }

  /* === MANIFESTO === */
  .manifesto {
    padding: 12rem 3rem;
    max-width: 1300px;
    margin: 0 auto;
    position: relative;
  }

  .manifesto-intro {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--rose);
    margin-bottom: 4rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 1.5rem;
  }

  .manifesto-intro::before,
  .manifesto-intro::after {
    content: '';
    height: 1px;
    background: var(--rose);
    flex: 1;
    max-width: 80px;
  }

  .manifesto-intro {
    justify-content: center;
  }

  .manifesto-quote {
    font-family: var(--font-display);
    font-weight: 300;
    font-size: calc(clamp(2rem, 4.5vw, 4rem) * var(--sz-title));
    line-height: 1.2;
    color: var(--ink);
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
    letter-spacing: -0.02em;
  }

  .manifesto-quote em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .manifesto-quote .word-large {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 1.3em;
    color: var(--rose);
    font-weight: 400;
  }

  .manifesto-attribution {
    margin-top: 4rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }

  .manifesto-mark {
    width: var(--mark-size, 36px);
    color: var(--rose);
    margin: 3rem auto 0;
    opacity: 0.7;
  }

  .manifesto-mark svg { width: 100%; height: auto; display: block; overflow: visible; }

  .manifesto-line {
    width: 1px;
    height: 50px;
    background: var(--rose);
  }

  .manifesto-name {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1.5rem * var(--sz-card));
    color: var(--ink);
  }

  .manifesto-role {
    font-size: calc(0.68rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--rose);
    font-weight: 500;
  }

  /* === COLLECTIONS === */
  .collections {
    padding: 8rem 3rem 12rem;
    position: relative;
    background: var(--cream);
  }

  .section-header {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6rem;
    margin-bottom: 6rem;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    align-items: end;
  }

  .section-meta {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .section-meta .num {
    font-family: var(--font-display);
    font-style: italic;
    font-size: calc(4rem * var(--sz-title));
    color: var(--rose);
    line-height: 0.8;
    font-weight: 300;
  }

  .section-meta .label {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--ink-soft);
    font-weight: 500;
  }

  .section-title {
    font-family: var(--font-display);
    font-size: calc(clamp(2.5rem, 5.5vw, 5rem) * var(--sz-title));
    font-weight: 300;
    line-height: 0.98;
    letter-spacing: -0.03em;
  }

  .section-title em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .section-intro {
    font-size: calc(1.05rem * var(--sz-body));
    line-height: 1.75;
    color: var(--ink-soft);
    max-width: 540px;
    padding-bottom: 1rem;
    margin-top: 2rem;
  }

  .collection-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 2.5rem;
    max-width: 1400px;
    margin: 0 auto;
  }

  .collection-card {
    position: relative;
    cursor: none;
  }

  .card-large { grid-column: span 7; transform: translateY(0); }
  .card-medium { grid-column: span 5; transform: translateY(4rem); }
  .card-tall { grid-column: span 4; transform: translateY(0); }
  .card-medium-2 { grid-column: span 4; transform: translateY(2rem); }
  .card-wide { grid-column: span 4; transform: translateY(-1rem); }

  .card-image {
    display: block;
    width: 100%;
    aspect-ratio: 4/5;
    overflow: hidden;
    position: relative;
    background: var(--paper);
  }

  .card-large .card-image { aspect-ratio: 5/6; }
  .card-wide .card-image { aspect-ratio: 7/5; }

  .card-image-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-size: cover;
    background-position: center;
    transition: transform 1.4s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .collection-card:hover .card-image-bg { transform: scale(1.08); }


  /* Image overlay on hover */
  .card-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(31, 20, 24, 0.5) 100%);
    opacity: 0;
    transition: opacity 0.5s;
    z-index: 1;
  }

  .collection-card:hover .card-image::after { opacity: 1; }

  /* "Discover" overlay */
  .card-discover {
    position: absolute;
    bottom: 1.5rem;
    left: 1.5rem;
    color: var(--cream);
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-weight: 500;
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 0.6rem;
  }

  .collection-card:hover .card-discover {
    opacity: 1;
    transform: translateY(0);
  }

  .card-overlay {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    background: var(--cream);
    padding: 0.5rem 1rem;
    font-size: calc(0.6rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--rose);
    z-index: 2;
    font-weight: 500;
  }

  .card-info {
    padding: 1.8rem 0 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: start;
    border-top: 1px solid rgba(31, 20, 24, 0.1);
    margin-top: 0;
  }

  .card-name {
    font-family: var(--font-display);
    font-size: calc(1.5rem * var(--sz-card));
    font-weight: 400;
    margin-bottom: 0.4rem;
    line-height: 1.1;
  }

  .card-name em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .card-desc {
    font-size: calc(0.85rem * var(--sz-small));
    color: var(--ink-soft);
    letter-spacing: 0.02em;
    line-height: 1.5;
  }

  .card-num {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-size: calc(1.1rem * var(--sz-body));
    padding-top: 0.3rem;
  }

  /* === MACARONS SPOTLIGHT === */
  .macarons-spotlight {
    padding: 0;
    background: var(--rose-blush);
    position: relative;
    overflow: hidden;
  }

  .macarons-hero {
    height: 70vh;
    min-height: 500px;
    background-image: url('assets/images/col-macarons.jpg');
    background-size: cover;
    background-position: center;
    position: relative;
  }

  .macarons-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(208, 10, 120, 0.15) 0%, rgba(31, 20, 24, 0.5) 100%);
  }

  .macarons-hero-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 4rem 3rem;
    color: var(--cream);
    z-index: 2;
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
    align-items: end;
  }

  .macarons-hero-text .label {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--rose-blush);
    margin-bottom: 1.5rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  .macarons-hero-text .label::before {
    content: '';
    width: 50px;
    height: 1px;
    background: var(--rose-blush);
  }

  .macarons-hero-text h2 {
    font-family: var(--font-display);
    font-size: calc(clamp(3rem, 6vw, 6rem) * var(--sz-title));
    font-weight: 300;
    line-height: 0.95;
    letter-spacing: -0.03em;
    color: var(--cream);
    max-width: 900px;
  }

  .macarons-hero-text h2 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose-blush);
    font-weight: 400;
  }

  .macarons-hero-cta {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-end;
  }

  .macarons-hero-stat {
    text-align: right;
  }

  .macarons-hero-stat .num {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(4.5rem * var(--sz-title));
    color: var(--rose-blush);
    line-height: 1;
    font-weight: 400;
  }

  .macarons-hero-stat .label {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--cream);
    font-weight: 500;
  }

  .macarons-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    background: var(--cream);
  }

  .macaron-card {
    padding: 4rem 3rem;
    border-right: 1px solid rgba(208, 10, 120, 0.15);
    position: relative;
    background: var(--cream);
    transition: background 0.5s;
    text-align: center;
  }

  .macaron-card:last-child { border-right: none; }
  .macaron-card:hover { background: var(--rose-whisper); }

  .macaron-card-img {
    width: 75%;
    max-width: 320px;
    aspect-ratio: 1;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin: 0 auto 2.5rem;
    background-color: transparent;
    transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .macaron-card:hover .macaron-card-img { transform: scale(1.04); }

  .macaron-card .num {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(0.95rem * var(--sz-body));
    color: var(--rose);
    margin-bottom: 0.8rem;
  }

  .macaron-card h3 {
    font-family: var(--font-display);
    font-size: calc(1.6rem * var(--sz-card));
    font-weight: 400;
    line-height: 1.1;
    margin-bottom: 0.6rem;
  }

  .macaron-card h3 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .macaron-card .flavors {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1rem * var(--sz-body));
    color: var(--ink-soft);
    line-height: 1.5;
    margin-bottom: 1.5rem;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
  }

  .macaron-card .meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1rem;
    border-top: 1px solid rgba(31, 20, 24, 0.1);
    font-size: calc(0.75rem * var(--sz-small));
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ink-soft);
    font-weight: 500;
    max-width: 320px;
    margin: 0 auto;
  }

  .macaron-card .price {
    font-family: var(--font-display);
    font-style: italic;
    font-size: calc(1.15rem * var(--sz-card));
    color: var(--rose);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
  }

  .photo-strip {
    height: 60vh;
    background-size: cover;
    background-position: center 30%;
    background-color: var(--ink);
    position: relative;
    overflow: hidden;
    background-image: linear-gradient(rgba(31,20,24,0.55), rgba(31,20,24,0.55)), url('assets/images/quote-crostata.jpg');
    background-size: cover;
    background-position: center;
  }

  .photo-strip::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(31, 20, 24, 0.3) 0%, rgba(31, 20, 24, 0.7) 100%);
  }

  .photo-strip-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 4rem 3rem;
    color: var(--cream);
    max-width: 1300px;
    margin: 0 auto;
  }

  .photo-strip-quote {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(clamp(1.8rem, 3.5vw, 3rem) * var(--sz-title));
    line-height: 1.3;
    max-width: 700px;
    margin-bottom: 1.5rem;
    font-weight: 300;
  }

  .photo-strip-attr {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--rose-soft);
    font-weight: 500;
  }

  /* === ATELIER === */
  .atelier {
    padding: 12rem 3rem;
    background: var(--rose-whisper);
    position: relative;
    overflow: hidden;
  }

  .atelier-decoration {
    position: absolute;
    top: 4rem;
    right: 3rem;
    width: 280px;
    height: 280px;
    color: var(--rose-blush);
    opacity: 0.7;
    z-index: 0;
    pointer-events: none;
  }

  .atelier-decoration svg { width: 100%; height: 100%; display: block; }

  .atelier-content {
    max-width: 1300px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6rem;
    position: relative;
    z-index: 1;
    align-items: center;
  }

  .atelier-images {
    position: relative;
    aspect-ratio: 4/5;
  }

  .atelier-img-main {
    position: absolute;
    top: 0;
    left: 0;
    width: 75%;
    height: 80%;
    background-size: cover;
    background-position: center top;
    background-color: var(--ink);
    box-shadow: 0 30px 80px rgba(45, 31, 36, 0.25);
    background-image: url('assets/images/atelier-andreas.jpg');
    background-size: cover;
    background-position: center;
  }

  .atelier-img-accent {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 50%;
    height: 45%;
    background-size: cover;
    background-position: center;
    border: 8px solid var(--rose-whisper);
    box-shadow: 0 20px 50px rgba(200, 64, 122, 0.2);
    z-index: 2;
    background-image: url('assets/images/atelier-croissant.jpg');
    background-size: cover;
    background-position: center;
  }

  .atelier-frame {
    position: absolute;
    top: 35%;
    right: -2rem;
    background: var(--cream);
    padding: 1.5rem 1.8rem;
    width: 220px;
    box-shadow: 0 20px 50px rgba(200, 64, 122, 0.2);
    z-index: 3;
    transform: rotate(-2deg);
  }

  .atelier-frame .editorial {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1rem * var(--sz-body));
    line-height: 1.5;
    color: var(--ink);
  }

  .atelier-frame .signature {
    margin-top: 0.8rem;
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-size: calc(1.3rem * var(--sz-card));
    transform: rotate(-3deg);
    display: inline-block;
  }

  .atelier-text h2 {
    font-family: var(--font-display);
    font-size: calc(clamp(2.5rem, 5vw, 4.5rem) * var(--sz-title));
    font-weight: 300;
    line-height: 1;
    letter-spacing: -0.03em;
    margin-bottom: 2rem;
  }

  .atelier-text h2 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .atelier-text p {
    font-size: calc(1.05rem * var(--sz-body));
    line-height: 1.85;
    color: var(--ink-soft);
    margin-bottom: 1.5rem;
  }

  .atelier-text p:first-of-type::first-letter {
    font-family: var(--font-display);
    font-size: calc(5rem * var(--sz-title));
    float: left;
    line-height: 0.85;
    padding: 0.5rem 0.9rem 0 0;
    color: var(--rose);
    font-weight: 300;
    font-style: italic;
  }

  /* === CRAFT SECTION === */
  .craft {
    padding: 12rem 3rem;
    background: var(--ink);
    color: var(--cream);
    position: relative;
    overflow: hidden;
  }

  .craft-bg-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 600px;
    color: rgba(208, 10, 120, 0.05);
    z-index: 0;
    pointer-events: none;
  }

  .craft-bg-text svg { width: 100%; height: 100%; display: block; }

  .craft-content {
    max-width: 1300px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }

  .craft-header {
    text-align: center;
    margin-bottom: 6rem;
  }

  .craft-header .label {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--rose-soft);
    margin-bottom: 1.5rem;
    font-weight: 500;
  }

  .craft-header h2 {
    font-family: var(--font-display);
    font-size: calc(clamp(2.5rem, 5vw, 4.5rem) * var(--sz-title));
    font-weight: 300;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--cream);
  }

  .craft-header h2 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose-soft);
    font-weight: 400;
  }

  .craft-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    counter-reset: step;
  }

  .craft-step {
    padding: 2.5rem 2rem;
    border-right: 1px solid rgba(232, 155, 184, 0.15);
    position: relative;
    counter-increment: step;
  }

  .craft-step:last-child { border-right: none; }

  .craft-step::before {
    content: counter(step, decimal-leading-zero);
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1rem * var(--sz-body));
    color: var(--rose-soft);
    margin-bottom: 1.5rem;
    display: block;
  }

  .craft-step h3 {
    font-family: var(--font-display);
    font-size: calc(1.5rem * var(--sz-card));
    font-weight: 400;
    line-height: 1.2;
    margin-bottom: 1rem;
    color: var(--cream);
  }

  .craft-step h3 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose-soft);
    font-weight: 400;
  }

  .craft-step p {
    font-size: calc(0.92rem * var(--sz-body));
    line-height: 1.7;
    color: rgba(250, 246, 241, 0.65);
  }

  .craft-step .duration {
    margin-top: 1.5rem;
    font-size: calc(0.68rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--rose-soft);
    font-weight: 500;
  }

  /* === EDITORIAL SPREAD === */
  .editorial-spread {
    padding: 10rem 3rem;
    background: var(--cream);
    position: relative;
  }

  .editorial-spread-content {
    max-width: 1300px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
  }

  .editorial-spread-images {
    position: relative;
    aspect-ratio: 4/5;
  }

  .editorial-spread-img-1,
  .editorial-spread-img-2 {
    position: absolute;
    background-size: cover;
    background-position: center;
    box-shadow: 0 25px 60px rgba(45, 31, 36, 0.2);
    background-image: url('assets/images/editorial-2.jpg');
    background-size: cover;
    background-position: center;
  }

  .editorial-spread-img-1 {
    top: 0;
    left: 0;
    width: 65%;
    aspect-ratio: 1;
    background-image: url('assets/images/editorial-1.jpg');
    background-size: cover;
    background-position: center;
  }

  .editorial-spread-img-2 {
    bottom: 0;
    right: 0;
    width: 60%;
    aspect-ratio: 3/4;
    background-image: url('assets/images/editorial-2.jpg');
    border: 8px solid var(--cream);
    background-size: cover;
    background-position: center;
  }

  .editorial-spread-tag {
    position: absolute;
    top: 50%;
    left: -2rem;
    background: var(--rose);
    color: var(--cream);
    padding: 0.6rem 1.2rem;
    font-size: calc(0.65rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-weight: 500;
    z-index: 3;
    transform: rotate(-2deg);
  }

  .editorial-spread-text h2 {
    font-family: var(--font-display);
    font-size: calc(clamp(2.5rem, 5vw, 4.5rem) * var(--sz-title));
    font-weight: 300;
    line-height: 1;
    letter-spacing: -0.03em;
    margin-bottom: 2rem;
  }

  .editorial-spread-text h2 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .editorial-spread-text p {
    font-size: calc(1.05rem * var(--sz-body));
    line-height: 1.85;
    color: var(--ink-soft);
    margin-bottom: 1.5rem;
  }

  /* === RECOGNITIONS === */
  .recognitions {
    padding: 10rem 3rem;
    text-align: center;
    background: var(--paper-warm);
    position: relative;
  }

  .recognitions-header {
    margin-bottom: 6rem;
  }

  .recognitions-eyebrow {
    font-size: calc(0.68rem * var(--sz-small));
    letter-spacing: 0.4em;
    color: var(--rose);
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    font-weight: 500;
  }

  .recognitions-title {
    font-family: var(--font-display);
    font-size: calc(clamp(2.2rem, 4.5vw, 3.5rem) * var(--sz-title));
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.02em;
    max-width: 800px;
    margin: 0 auto;
  }

  .recognitions-title em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .awards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 1100px;
    margin: 0 auto;
    gap: 0;
  }

  .award-item {
    padding: 3rem 2rem;
    border-right: 1px solid rgba(31, 20, 24, 0.12);
    position: relative;
    transition: transform 0.4s;
  }

  .award-item:hover {
    transform: translateY(-4px);
  }

  .award-item:last-child { border-right: none; }

  .award-mark {
    width: 60px;
    height: 60px;
    margin: 0 auto 1.5rem;
    border-radius: 50%;
    background: var(--cream);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rose);
    color: var(--rose);
    font-family: var(--font-display);
    font-style: italic;
    font-size: calc(1.4rem * var(--sz-card));
    font-weight: 500;
    transition: all 0.4s;
  }

  .award-item:hover .award-mark {
    background: var(--rose);
    color: var(--cream);
  }

  .award-title {
    font-family: var(--font-display);
    font-size: calc(1.4rem * var(--sz-card));
    margin-bottom: 0.5rem;
    font-weight: 400;
  }

  .award-title em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .award-org {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--ink-soft);
    margin-top: 0.5rem;
    font-weight: 500;
  }

  .award-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 1rem 0 0.6rem;
  }

  .award-logo-img {
    height: 38px;
    width: auto;
    max-width: 78%;
    object-fit: contain;
    display: block;
  }

  .award-detail {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    margin-top: 0.8rem;
    font-size: calc(1rem * var(--sz-body));
  }

  /* === GALLERY === */
  .gallery {
    padding: 12rem 3rem;
    background: var(--cream);
    position: relative;
    overflow: hidden;
  }

  .gallery-header {
    max-width: 1300px;
    margin: 0 auto 6rem;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
    align-items: end;
  }

  .gallery-header-left h2 {
    font-family: var(--font-display);
    font-size: calc(clamp(2.5rem, 5vw, 4.5rem) * var(--sz-title));
    font-weight: 300;
    line-height: 1;
    letter-spacing: -0.03em;
    margin-top: 1rem;
  }

  .gallery-header-left h2 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .gallery-link {
    color: var(--ink);
    text-decoration: none;
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-weight: 500;
    border-bottom: 1px solid var(--rose);
    padding-bottom: 6px;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 1rem;
  }

  .gallery-grid {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
  }

  .gallery-item {
    position: relative;
    cursor: none;
  }

  .gallery-item:nth-child(1),
  .gallery-item:nth-child(6) { transform: translateY(2.5rem); }

  .gallery-item:nth-child(3),
  .gallery-item:nth-child(8) { transform: translateY(-2.5rem); }

  .gallery-img {
    width: 100%;
    aspect-ratio: 1;
    background-size: cover;
    background-position: center;
    background-color: var(--paper);
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
  }

  .gallery-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(31, 20, 24, 0.4));
    opacity: 0;
    transition: opacity 0.5s;
  }

  .gallery-item:hover .gallery-img { transform: scale(1.04); }
  .gallery-item:hover .gallery-img::after { opacity: 1; }

  .gallery-item-info {
    padding: 1.2rem 0 0;
  }

  .gallery-item-name {
    font-family: var(--font-display);
    font-size: calc(1rem * var(--sz-body));
    color: var(--ink);
    margin-bottom: 0.3rem;
    font-weight: 400;
    line-height: 1.2;
  }

  .gallery-item-name em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose);
    font-weight: 400;
  }

  .gallery-item-tag {
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ink-soft);
  }

  /* === BOUTIQUES === */
  .boutiques {
    padding: 12rem 3rem;
    background: var(--ink);
    color: var(--cream);
    position: relative;
    overflow: hidden;
  }

  .boutiques-bg {
    position: absolute;
    top: -3rem;
    right: -3rem;
    width: 450px;
    height: 450px;
    color: rgba(208, 10, 120, 0.07);
    z-index: 0;
    pointer-events: none;
  }

  .boutiques-bg svg { width: 100%; height: 100%; display: block; }

  .boutiques .section-header { position: relative; z-index: 1; }
  .boutiques .section-meta .label { color: rgba(232, 155, 184, 0.7); }
  .boutiques .section-title { color: var(--cream); }
  .boutiques .section-title em { color: var(--rose-soft); }
  .boutiques .section-intro { color: rgba(250, 246, 241, 0.7); }

  .boutique-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    max-width: 1400px;
    margin: 4rem auto 0;
    border-top: 1px solid rgba(232, 155, 184, 0.2);
    position: relative;
    z-index: 1;
  }

  .boutique-card {
    padding: 3.5rem 2.5rem;
    border-right: 1px solid rgba(232, 155, 184, 0.2);
    border-bottom: 1px solid rgba(232, 155, 184, 0.2);
    position: relative;
    transition: background 0.5s;
  }

  .boutique-card:last-child { border-right: none; }
  .boutique-card:hover { background: rgba(200, 64, 122, 0.06); }

  .boutique-num {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(0.95rem * var(--sz-body));
    color: var(--rose-soft);
    margin-bottom: 1.5rem;
  }

  .boutique-name {
    font-family: var(--font-display);
    font-size: calc(2.5rem * var(--sz-title));
    font-weight: 300;
    margin-bottom: 0.5rem;
    letter-spacing: -0.02em;
    line-height: 1;
  }

  .boutique-tag {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose-soft);
    margin-bottom: 2.5rem;
    font-size: calc(1.1rem * var(--sz-body));
  }

  .boutique-address {
    font-size: calc(0.95rem * var(--sz-body));
    line-height: 1.7;
    color: rgba(250, 246, 241, 0.85);
    margin-bottom: 1.8rem;
  }

  .boutique-hours {
    font-size: calc(0.82rem * var(--sz-small));
    line-height: 1.85;
    color: rgba(250, 246, 241, 0.55);
    margin-bottom: 2.5rem;
    letter-spacing: 0.02em;
  }

  .boutique-hours strong {
    color: var(--rose-soft);
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: calc(0.66rem * var(--sz-small));
    display: block;
    margin-bottom: 0.6rem;
  }

  .boutique-link {
    color: var(--cream);
    text-decoration: none;
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    border-bottom: 1px solid var(--rose-soft);
    padding-bottom: 6px;
    transition: color 0.3s, gap 0.3s;
  }

  .boutique-link:hover {
    color: var(--rose-soft);
    gap: 1rem;
  }

  /* === NEWSLETTER === */
  .newsletter {
    padding: 8rem 3rem;
    background: var(--rose);
    color: var(--cream);
    text-align: center;
    position: relative;
    overflow: hidden;
  }

  .newsletter-content {
    max-width: 700px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }

  .newsletter h2 {
    font-family: var(--font-display);
    font-size: calc(clamp(2.2rem, 4.5vw, 3.5rem) * var(--sz-title));
    font-weight: 300;
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
  }

  .newsletter h2 em {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--rose-blush);
    font-weight: 400;
  }

  .newsletter p {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1.2rem * var(--sz-card));
    line-height: 1.6;
    margin-bottom: 3rem;
    color: var(--rose-blush);
  }

  .newsletter-form {
    display: flex;
    gap: 0;
    max-width: 500px;
    margin: 0 auto;
    border-bottom: 1px solid var(--cream);
    padding-bottom: 0.5rem;
  }

  .newsletter-form input {
    flex: 1;
    background: transparent;
    border: none;
    color: var(--cream);
    font-family: var(--font-sans);
    font-size: calc(1rem * var(--sz-body));
    padding: 0.8rem 0;
    outline: none;
    letter-spacing: 0.02em;
  }

  .newsletter-form input::placeholder {
    color: rgba(250, 246, 241, 0.5);
    font-style: italic;
    font-family: var(--font-serif);
  }

  .newsletter-form button {
    background: transparent;
    border: none;
    color: var(--cream);
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    padding: 0.8rem 1.5rem;
    cursor: none;
    transition: opacity 0.3s;
  }

  .newsletter-form button:hover { opacity: 0.7; }

  /* === FOOTER === */
  footer {
    padding: 5rem 3rem 2rem;
    background: var(--ink);
    color: rgba(250, 246, 241, 0.6);
    border-top: 1px solid rgba(232, 155, 184, 0.15);
  }

  .footer-content {
    max-width: 1400px;
    margin: 0 auto 4rem;
    display: grid;
    grid-template-columns: 2.5fr 1fr 1fr 1fr;
    gap: 4rem;
  }

  .footer-brand .logo-wrap { color: var(--cream); margin-bottom: 1.5rem; }
  .footer-brand .logo-svg { color: var(--rose-soft); width: 180px; }
  .footer-brand .logo-tag { color: rgba(250, 246, 241, 0.6); border-left-color: rgba(232, 155, 184, 0.3); }

  .footer-tag {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1.15rem * var(--sz-card));
    color: rgba(250, 246, 241, 0.7);
    line-height: 1.6;
    max-width: 320px;
    margin-top: 1rem;
  }

  .footer-col h4 {
    font-size: calc(0.66rem * var(--sz-small));
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--rose-soft);
    margin-bottom: 1.5rem;
    font-weight: 500;
  }

  .footer-col ul { list-style: none; }
  .footer-col li { margin-bottom: 0.8rem; }

  .footer-col a {
    color: rgba(250, 246, 241, 0.7);
    text-decoration: none;
    font-size: calc(0.92rem * var(--sz-body));
    transition: color 0.3s;
  }

  .footer-col a:hover { color: var(--rose-soft); }

  .footer-bottom {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 2rem;
    border-top: 1px solid rgba(232, 155, 184, 0.15);
    font-size: calc(0.75rem * var(--sz-small));
    color: rgba(250, 246, 241, 0.4);
  }

  .footer-bottom-links {
    display: flex;
    gap: 2.5rem;
    list-style: none;
  }

  .footer-bottom-links a { color: inherit; text-decoration: none; }
  .footer-bottom-links a:hover { color: var(--rose-soft); }

  /* Dati dell'impresa: piccoli e discreti, ma leggibili. Non è una nota a
     piè di pagina qualsiasi, è un'informazione che qualcuno cercherà. */
  .footer-impresa {
    max-width: 1400px;
    margin: 1.6rem auto 0;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(232, 155, 184, 0.1);
    font-size: calc(0.7rem * var(--sz-small));
    line-height: 1.7;
    color: var(--rose-soft);
    opacity: 0.75;
  }

  /* === ANIMATIONS === */
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .reveal.in-view {
    opacity: 1;
    transform: translateY(0);
  }

  /* === RESPONSIVE === */
  @media (max-width: 968px) {
    nav { padding: 1rem 1.5rem; }
    .nav-links { display: none; }
    /* minmax(0, 1fr) invece di 1fr: senza lo zero la colonna si allarga
       fino alla parola piu' lunga del titolo e sfonda lo schermo. */
    .hero { grid-template-columns: minmax(0, 1fr); padding: 7rem 1.5rem 4rem; gap: 3rem; }
    .hero > *, .hero-text, .hero-visual { min-width: 0; max-width: 100%; }
    .hero h1 .word { max-width: 100%; }
    .collection-grid, .macarons-grid, .atelier-content, .editorial-spread-content,
    .craft-steps, .awards-grid, .boutique-grid { min-width: 0; }
    .collection-card, .macaron-card, .award-item, .boutique-card, .craft-step { min-width: 0; }
    .hero-bignumber { width: 220px; height: 220px; bottom: 8rem; right: -2rem; }
    .hero-visual { height: 70vh; }
    .hero-award { right: 0; }
    .scroll-indicator { display: none; }
    .marquee-track { font-size: calc(1.4rem * var(--sz-card)); }
    .marquee-mark { width: 22px; height: 22px; }
    .logo-svg { width: 130px; }
    .logo-tag { display: none; }
    .manifesto, .collections, .atelier, .recognitions, .boutiques, .gallery, .editorial-spread, .craft, .newsletter { padding-left: 1.5rem; padding-right: 1.5rem; }
    .manifesto, .collections, .atelier, .recognitions, .boutiques, .gallery, .editorial-spread, .craft { padding-top: 6rem; padding-bottom: 6rem; }
    .section-header, .gallery-header { grid-template-columns: 1fr; gap: 2rem; margin-bottom: 4rem; }
    .collection-grid { grid-template-columns: 1fr; gap: 2rem; }
    .card-large, .card-medium, .card-tall, .card-medium-2, .card-wide { grid-column: span 1; transform: none; }
    .atelier-content { grid-template-columns: 1fr; gap: 4rem; }
    .atelier-frame { right: 0; top: auto; bottom: -3rem; }
    .craft-steps { grid-template-columns: 1fr; }
    .craft-step { border-right: none; border-bottom: 1px solid rgba(232, 155, 184, 0.15); }
    .craft-step:last-child { border-bottom: none; }
    .craft-bg-text { width: 280px; height: 280px; }
    .editorial-spread-content { grid-template-columns: 1fr; gap: 4rem; }
    .editorial-spread-images { aspect-ratio: 1; }
    .awards-grid { grid-template-columns: 1fr; }
    .award-item { border-right: none; border-bottom: 1px solid rgba(31, 20, 24, 0.12); }
    .award-item:last-child { border-bottom: none; }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .gallery-item:nth-child(n) { transform: none; }
    .macarons-hero { height: 50vh; min-height: 350px; }
    .macarons-hero-content { grid-template-columns: 1fr; padding: 2rem 1.5rem; gap: 2rem; }
    .macarons-grid { grid-template-columns: 1fr; }
    .macaron-card { border-right: none; border-bottom: 1px solid rgba(208, 10, 120, 0.15); padding: 3rem 1.5rem; }
    .macaron-card:last-child { border-bottom: none; }
    .boutiques-bg { width: 200px; height: 200px; }
    .boutique-grid { grid-template-columns: 1fr; }
    .boutique-card { border-right: none; }
    .footer-content { grid-template-columns: 1fr; gap: 2.5rem; }
    .footer-bottom { flex-direction: column; gap: 1.5rem; }
    .footer-bottom-links { gap: 1.5rem; }
    .photo-strip-content { padding: 3rem 1.5rem; }
  }

/* === FIX WORDPRESS ADMIN BAR === */
.admin-bar #nav { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar #nav { top: 46px; }
}
/* Il cursore custom viene disattivato in area admin/editor */
body.wp-admin, body.block-editor-page { cursor: auto; }

  /* === SEZIONI LIBERE === */
  .cs { position: relative; }
  .cs-grid { display: grid; gap: 4rem; align-items: center; max-width: 1400px; margin: 0 auto; }
  .cs-grid-img-testo, .cs-grid-testo-img { grid-template-columns: 1fr 1fr; }
  .cs-grid-testo { grid-template-columns: 1fr; }
  .cs-img { background-color: var(--paper); background-size: cover; background-position: center; }
  .cs-eyebrow {
    font-family: var(--font-sans);
    font-size: calc(0.72rem * var(--sz-small));
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin-bottom: 1.6rem;
    opacity: 0.75;
  }
  .cs-title { font-weight: 400; line-height: 1.08; margin-bottom: 1.8rem; }
  .cs-body { font-family: var(--font-sans); font-weight: 300; line-height: 1.85; }
  .cs-text .btn-primary { margin-top: 2.5rem; }
  .cs-cover { position: relative; }
  .cs-cover .cs-img-cover { position: absolute; inset: 0; height: 100% !important; }
  .cs-cover .cs-text { position: relative; z-index: 2; padding: 6rem 0; }

  @media (max-width: 968px) {
    .cs-grid-img-testo, .cs-grid-testo-img { grid-template-columns: 1fr; gap: 2.5rem; }
    .cs-grid-testo-img .cs-img { order: -1; }
  }

  /* Sezioni libere: griglia di elementi */
  .cs-items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    max-width: 1400px;
    margin: 3.5rem auto 0;
  }
  .cs-item-img {
    height: 14rem;
    background-size: cover;
    background-position: center;
    background-color: var(--paper);
    margin-bottom: 1.6rem;
  }
  .cs-item-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: calc(1.35rem * var(--sz-card));
    line-height: 1.25;
    margin-bottom: 0.8rem;
  }
  .cs-item-text {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: calc(0.98rem * var(--sz-body));
    line-height: 1.8;
    opacity: 0.85;
  }
  .cs-items-cta { margin-top: 3.5rem; }

  /* Sezioni libere: testo su due colonne */
  .cs-layout-due-colonne .cs-body { column-count: 2; column-gap: 4rem; }

  /* Sezioni libere: citazione */
  .cs-quote { max-width: 62rem; margin: 0 auto; text-align: center; }
  .cs-quote-text {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 300;
    font-size: calc(clamp(1.8rem, 3.6vw, 3rem) * var(--sz-title));
    line-height: 1.35;
  }
  .cs-quote-cite {
    display: block;
    margin-top: 2.5rem;
    font-family: var(--font-sans);
    font-style: normal;
    font-size: calc(0.72rem * var(--sz-small));
    letter-spacing: 0.28em;
    text-transform: uppercase;
    opacity: 0.7;
  }

  @media (max-width: 968px) {
    .cs-items { grid-template-columns: 1fr; gap: 2.5rem; }
    .cs-layout-due-colonne .cs-body { column-count: 1; }
  }

  /* La galleria usa immagini vere: indicizzabili e con testo alternativo */
  img.gallery-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  /* Selettore di lingua nel footer */
  .lang-switcher a { color: inherit; text-decoration: none; opacity: 0.6; transition: opacity 0.4s ease; }
  .lang-switcher a:hover { opacity: 1; color: var(--rose-soft); }
  .lang-current { color: var(--rose-soft); }

  /* Accessibilità: testi per soli lettori di schermo e salto al contenuto */
  .screen-reader-text {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .skip-link:focus {
    position: fixed;
    top: 1rem; left: 1rem;
    width: auto; height: auto;
    clip: auto;
    z-index: 9999;
    background: var(--ink);
    color: var(--cream);
    padding: 1rem 1.6rem;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
  }

  /* Newsletter: casella di consenso */
  .newsletter-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-top: 1.4rem;
    flex-basis: 100%;
    font-family: var(--font-sans);
    font-size: calc(0.8rem * var(--sz-small));
    line-height: 1.6;
    opacity: 0.8;
    text-align: left;
  }
  .newsletter-consent input { margin-top: 0.25rem; accent-color: var(--rose); }
  .newsletter-consent a { text-decoration: underline; }

  /* === BLUMEN: composizioni floreali e matrimoni === */
  .blumen { padding: 12rem 3rem; background: var(--rose-whisper); }

  .blumen-header { max-width: 62rem; margin: 0 auto 5rem; text-align: center; }
  .blumen-header .section-meta { justify-content: center; }
  .blumen-header .section-intro { margin-left: auto; margin-right: auto; }

  .blumen-duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto 6rem;
  }
  .blumen-duo-img {
    aspect-ratio: 4/5;
    background-size: cover;
    background-position: center;
    background-color: var(--paper);
  }

  .blumen-person { margin-bottom: 2.6rem; }
  .blumen-person-name {
    font-family: var(--font-display);
    font-size: calc(1.9rem * var(--sz-card));
    font-weight: 400;
    line-height: 1.1;
  }
  .blumen-person-role {
    font-family: var(--font-sans);
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--rose);
    margin: 0.5rem 0 0.9rem;
  }
  .blumen-person p {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: calc(1rem * var(--sz-body));
    line-height: 1.85;
    color: var(--ink-soft);
  }
  .blumen-together {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1.4rem * var(--sz-body));
    line-height: 1.5;
    padding-top: 2rem;
    border-top: 1px solid var(--paper-warm);
  }
  .blumen-duo-text .btn-primary { margin-top: 2.4rem; }

  .blumen-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    max-width: 1400px;
    margin: 0 auto;
  }
  .blumen-card-img {
    aspect-ratio: 3/4;
    background-size: cover;
    background-position: center;
    background-color: var(--paper);
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .blumen-card:hover .blumen-card-img { transform: scale(1.04); }
  .blumen-card figcaption {
    font-family: var(--font-sans);
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 1.1rem;
  }

  @media (max-width: 968px) {
    .blumen { padding: 6rem 1.5rem; }
    .blumen-duo { grid-template-columns: 1fr; gap: 2.5rem; }
    .blumen-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
  }

  /* === PAGINE INTERNE === */
  .page-hero-wrap { padding: 14rem 3rem 10rem; }
  .page-hero { max-width: 58rem; margin: 0 auto 4rem; text-align: center; }
  .page-eyebrow {
    font-family: var(--font-sans);
    font-size: calc(0.72rem * var(--sz-small));
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--rose);
    margin-bottom: 1.6rem;
  }
  .page-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: calc(clamp(2.4rem, 5vw, 4.4rem) * var(--sz-title));
    line-height: 1.08;
  }
  .page-cover { max-width: 1100px; margin: 0 auto 5rem; }
  .page-cover img { width: 100%; height: auto; display: block; }

  .entry-content {
    max-width: 44rem;
    margin: 0 auto;
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: calc(1.05rem * var(--sz-body));
    line-height: 1.9;
    color: var(--ink-soft);
  }
  .entry-content > * + * { margin-top: 1.6rem; }
  .entry-content h2 {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: calc(2rem * var(--sz-card));
    line-height: 1.2;
    color: var(--ink);
    margin-top: 3.5rem;
  }
  .entry-content h3 {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: calc(1.4rem * var(--sz-card));
    color: var(--ink);
    margin-top: 2.5rem;
  }
  .entry-content a { color: var(--rose); text-decoration: underline; text-underline-offset: 0.25em; }
  .entry-content ul, .entry-content ol { padding-left: 1.4rem; }
  .entry-content li + li { margin-top: 0.6rem; }
  .entry-content img, .entry-content figure img { width: 100%; height: auto; display: block; }
  .entry-content figure { margin-top: 3rem; }
  .entry-content figcaption {
    font-size: calc(0.72rem * var(--sz-small));
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 0.9rem;
    text-align: center;
  }
  .entry-content blockquote {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: calc(1.5rem * var(--sz-body));
    line-height: 1.5;
    color: var(--ink);
    border-left: 2px solid var(--rose);
    padding-left: 2rem;
    margin: 3rem 0;
  }
  .entry-content .btn-primary { display: inline-flex; margin-top: 1rem; }
  .entry-content .alignwide, .entry-content .alignfull { max-width: none; }

  @media (max-width: 968px) {
    .page-hero-wrap { padding: 9rem 1.5rem 5rem; }
  }

  /* === TORTE NUZIALI === */
  .wedding { padding: 12rem 3rem; }
  .wedding-header { max-width: 62rem; margin: 0 auto 5rem; text-align: center; }
  .wedding-header .section-meta { justify-content: center; }
  .wedding-header .section-intro { margin-left: auto; margin-right: auto; }

  .wedding-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    max-width: 1400px;
    margin: 0 auto 6rem;
  }
  .wedding-card-img {
    aspect-ratio: 4/5;
    background-size: cover;
    background-position: center;
    background-color: var(--paper);
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .wedding-card:hover .wedding-card-img { transform: scale(1.04); }
  .wedding-card figcaption {
    font-family: var(--font-sans);
    font-size: calc(0.7rem * var(--sz-small));
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 1.1rem;
  }

  .wedding-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem;
    max-width: 1100px;
    margin: 0 auto;
    padding-top: 4rem;
    border-top: 1px solid var(--paper-warm);
  }
  .wedding-step-num {
    font-family: var(--font-serif);
    font-size: calc(1.5rem * var(--sz-card));
    color: var(--rose);
    margin-bottom: 1rem;
  }
  .wedding-step h3 {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: calc(1.5rem * var(--sz-card));
    margin-bottom: 0.9rem;
  }
  .wedding-step p {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: calc(0.98rem * var(--sz-body));
    line-height: 1.85;
    color: var(--ink-soft);
  }
  .wedding-cta { text-align: center; margin-top: 4rem; }

  @media (max-width: 968px) {
    .wedding { padding: 6rem 1.5rem; }
    .wedding-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; margin-bottom: 3.5rem; }
    .wedding-steps { grid-template-columns: 1fr; gap: 2.5rem; }
  }

  /* === BARRA ANNUNCI === */
  .announcement {
    position: relative;
    z-index: 1001;
    text-align: center;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-sans);
    font-size: calc(0.68rem * var(--sz-small));
    letter-spacing: 0.22em;
    text-transform: uppercase;
  }
  .announcement a { text-decoration: none; }
  .announcement a:hover { opacity: 0.75; }

  /* === MENU SU TELEFONO === */
  .nav-toggle {
    display: none;
    background: none;
    border: 0;
    padding: 0.8rem;
    cursor: pointer;
    flex-direction: column;
    gap: 6px;
  }
  .nav-toggle span {
    display: block;
    width: 26px;
    height: 1px;
    background: var(--ink);
    transition: transform 0.4s ease, opacity 0.4s ease;
  }
  .nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }

  .nav-mobile {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: var(--cream);
    padding: 7rem 2rem 3rem;
    overflow-y: auto;
  }
  .nav-mobile.is-open { display: block; }
  .nav-mobile .nav-links {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .nav-mobile .nav-links li { border-bottom: 1px solid var(--paper-warm); }
  .nav-mobile .nav-links a {
    display: block;
    padding: 1.3rem 0;
    font-family: var(--font-display);
    font-size: 1.5rem;
    letter-spacing: 0;
    text-transform: none;
    height: auto;
    overflow: visible;
  }
  .nav-mobile .nav-links a span { transform: none !important; }
  .nav-mobile .nav-links a::after { display: none; }
  .nav-mobile .btn-primary { margin-top: 2.5rem; }

  @media (max-width: 968px) {
    .nav-toggle { display: flex; }
    body.nav-open { overflow: hidden; }

    /* La barra in alto deve stare su una riga sola: logo, pulsante,
       hamburger. Il pulsante si stringe invece di spingere via il logo. */
    nav { gap: 0.8rem; }
    .logo-wrap { flex: 0 1 auto; min-width: 0; }
    .shop-btn {
      padding: 0.6rem 0.9rem;
      letter-spacing: 0.12em;
      font-size: calc(0.56rem * var(--sz-small));
      white-space: nowrap;
      flex: 0 0 auto;
    }
  }

  /* Telefono: l'apertura era pensata per schermi larghi, con le due
     fotografie e i due cartellini sovrapposti in posizione assoluta. Su
     uno schermo stretto si accavallavano. Qui tornano in colonna. */
  @media (max-width: 782px) {
    .shop-btn { display: none; }

    .hero-visual {
      height: auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 1.2rem;
    }

    .hero-visual > * {
      position: relative !important;
      top: auto !important;
      right: auto !important;
      bottom: auto !important;
      left: auto !important;
      transform: none !important;
    }

    .hero-image-main {
      width: 100%;
      height: auto;
      aspect-ratio: 4 / 5;
      box-shadow: 0 20px 40px rgba(31, 20, 24, 0.18);
    }

    .hero-image-secondary {
      width: 58%;
      height: auto;
      aspect-ratio: 1;
      margin: -4rem 0 0 auto;
      border-width: 6px;
      z-index: 2;
    }

    .hero-meta {
      align-self: flex-start;
      width: auto;
      max-width: 100%;
    }

    .hero-award {
      width: 100%;
      max-width: 210px;
      margin: 0 auto;
    }

    .hero-bignumber { display: none; }

    /* Il titolo partiva da 3.5rem: su uno schermo da 390 pixel una parola
       sola non ci stava e spingeva fuori tutto il resto. */
    /* Il min() finale e' un tetto invalicabile: anche se la scala dei
       titoli e' stata alzata nel pannello, qui non si supera mai. */
    .hero h1 {
      font-size: min( calc(clamp(2.1rem, 11vw, 3.6rem) * var(--sz-hero)), 12.5vw );
      overflow-wrap: break-word;
      word-break: break-word;
      hyphens: auto;
    }

    /* Nessun riquadro fotografico può superare la larghezza dello schermo,
       qualunque dimensione sia stata impostata nel pannello. */
    .hero-visual > *,
    .macaron-card-img,
    .collection-card,
    .card-image,
    .editorial-spread-images,
    .atelier-frame,
    .blumen-image,
    .boutique-card {
      max-width: 100% !important;
    }
  }

  /* Editoriale: rimando rapido a Blumen e Torte nuziali */
  .editorial-seealso {
    margin-top: 2.2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    font-family: var(--font-sans);
    font-size: calc(0.78rem * var(--sz-small));
  }
  .editorial-seealso span { color: var(--ink-mute); }
  .editorial-seealso a { color: var(--rose); text-decoration: underline; text-underline-offset: 0.2em; }
  .editorial-seealso a:hover { color: var(--rose-deep); }

  /* Sezioni libere: video incorporato al posto della fotografia */
  .cs-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--ink);
    overflow: hidden;
  }
  .cs-video iframe,
  .cs-video video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
  }
  .cs-video-full { max-width: 1400px; margin: 0 auto; }

  /* ============================================================
     NATALE — panettone, dolci delle feste, tavolozza stagionale
     ============================================================ */

  /* --- interruttore stagionale: cambia la tavolozza di tutto il sito.
         Le variabili sono le stesse che usa il resto del foglio, quindi
         non serve toccare nessun'altra regola. --- */
  /* Accenti: il verde abete prende il posto del quasi-nero, le carte si
     scaldano, l'oro entra sui dettagli. Il magenta del marchio non si
     tocca: su un verde profondo diventa natalizio da solo. */
  body.natale-accenti{
    --cream:#f7f3ec;
    --paper:#f0e9dd;
    --paper-warm:#e6dccb;
    --ink:#16201a;
    --ink-soft:#31402f;
    --ink-mute:#6d7767;
    --gold:#c19a5b;
    --gold-deep:#95733f;
    --botanical:#2f5d43;
  }

  /* Pieno: cambia anche il marchio. Il logo è disegnato con currentColor,
     quindi segue questa variabile senza bisogno di un file diverso. */
  body.natale{
    --rose:#9c1c2b;
    --rose-deep:#761320;
    --rose-soft:#dfa0a4;
    --rose-blush:#f6e3e1;
    --rose-whisper:#fdf5f3;
    --shadow-rose:rgba(120,25,35,.14);
  }

  /* ---------- il panettone ---------- */
  .pan{
    background:var(--ink);
    color:var(--cream);
    padding:clamp(4rem,9vw,8rem) clamp(1.4rem,5vw,5rem);
    position:relative;overflow:hidden;
  }
  .pan::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(60% 55% at 72% 42%, rgba(193,154,91,.18) 0%, rgba(193,154,91,0) 70%);
  }
  .pan-inner{
    position:relative;z-index:1;
    max-width:76rem;margin:0 auto;
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
    gap:clamp(2.5rem,5vw,5rem);align-items:center;
  }

  .pan-occhiello{
    font-size:calc(.62rem * var(--sz-small));letter-spacing:.34em;
    text-transform:uppercase;color:var(--gold);margin-bottom:1.6rem;
  }
  .pan-titolo{
    font-family:var(--font-display);font-weight:300;
    font-size:calc(clamp(2rem,4.6vw,3.6rem) * var(--sz-title));
    line-height:1.05;letter-spacing:-.02em;margin:0 0 1.6rem;
  }
  .pan-titolo em{font-style:italic;color:var(--gold)}
  .pan-testo-corpo{
    font-size:calc(1rem * var(--sz-body));line-height:1.85;
    color:rgba(250,246,241,.72);max-width:34rem;margin:0;
  }

  .pan-fatti{
    list-style:none;display:flex;flex-wrap:wrap;gap:2.4rem;
    margin:2.6rem 0 0;padding:1.8rem 0 0;
    border-top:1px solid rgba(250,246,241,.14);
  }
  .pan-fatti li{display:flex;flex-direction:column;gap:.3rem}
  .pan-fatti .n{
    font-family:var(--font-display);font-size:calc(1.5rem * var(--sz-card));
    color:var(--gold);line-height:1;
  }
  .pan-fatti .e{
    font-size:calc(.6rem * var(--sz-small));letter-spacing:.2em;
    text-transform:uppercase;color:rgba(250,246,241,.5);
  }

  .pan-azioni{margin-top:2.8rem}
  .pan-cta{
    display:inline-block;position:relative;overflow:hidden;
    padding:1.15rem 2.8rem;text-decoration:none;
    background:var(--gold);color:var(--ink);
    font-size:calc(.66rem * var(--sz-small));letter-spacing:.26em;
    text-transform:uppercase;font-weight:500;
    border:1px solid var(--gold);transition:background .4s ease,color .4s ease;
  }
  .pan-cta:hover{background:transparent;color:var(--gold)}
  .pan-scadenza{
    margin-top:1.2rem;font-size:calc(.72rem * var(--sz-small));
    color:rgba(250,246,241,.55);letter-spacing:.02em;
  }

  /* --- il taglio --- */
  .pan-visivo{
    --taglio:0;
    position:relative;aspect-ratio:4/5;min-width:0;
    box-shadow:0 30px 70px rgba(0,0,0,.45);
    cursor:crosshair;
  }
  .pan-foto{
    position:absolute;inset:0;
    background-size:cover;background-position:center;background-repeat:no-repeat;
  }
  .pan-tagliato{
    -webkit-mask-image:linear-gradient(90deg,#000 calc(var(--taglio) * 100% - 1%),rgba(0,0,0,0) calc(var(--taglio) * 100% + 1%));
    mask-image:linear-gradient(90deg,#000 calc(var(--taglio) * 100% - 1%),rgba(0,0,0,0) calc(var(--taglio) * 100% + 1%));
    -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  }
  .pan-lama{
    position:absolute;top:-2%;bottom:-2%;width:1px;
    left:calc(var(--taglio) * 100%);transform:translateX(-50%);
    background:linear-gradient(to bottom,rgba(255,236,206,0) 0%,#fff1da 18%,#fff 50%,#fff1da 82%,rgba(255,236,206,0) 100%);
    box-shadow:0 0 22px 5px rgba(255,214,150,.45);
    opacity:0;transition:opacity .5s ease;pointer-events:none;
  }
  .pan-visivo.aperto .pan-lama{opacity:1}

  .pan-suggerimento{
    position:absolute;left:50%;bottom:1.2rem;transform:translateX(-50%);
    font-size:calc(.56rem * var(--sz-small));letter-spacing:.24em;
    text-transform:uppercase;color:rgba(250,246,241,.75);
    background:rgba(0,0,0,.35);padding:.5rem 1rem;backdrop-filter:blur(4px);
    pointer-events:none;transition:opacity .5s ease;
  }
  .pan-visivo.aperto .pan-suggerimento{opacity:0}

  @media (max-width:968px){
    .pan-inner{grid-template-columns:minmax(0,1fr);gap:2.6rem}
    .pan-visivo{aspect-ratio:1;cursor:default}
  }

  /* ---------- i dolci di Natale ---------- */
  .nat{
    background:var(--paper-warm);
    padding:clamp(4rem,8vw,7rem) clamp(1.4rem,5vw,5rem);
  }
  .nat-intro{max-width:76rem;margin:0 auto 3.4rem}
  .nat-occhiello{
    font-size:calc(.62rem * var(--sz-small));letter-spacing:.34em;
    text-transform:uppercase;color:var(--rose);margin-bottom:1.2rem;
  }
  .nat-titolo{
    font-family:var(--font-display);font-weight:300;
    font-size:calc(clamp(1.9rem,4.2vw,3.2rem) * var(--sz-title));
    line-height:1.08;letter-spacing:-.02em;margin:0;color:var(--ink);
  }
  .nat-titolo em{font-style:italic;color:var(--rose)}

  .nat-griglia{
    max-width:76rem;margin:0 auto;
    display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
    gap:clamp(1.4rem,2.6vw,2.4rem);
  }
  .nat-card{min-width:0}
  .nat-foto{
    display:block;aspect-ratio:4/5;
    background-size:cover;background-position:center;background-repeat:no-repeat;
    background-color:var(--paper);
    transition:transform .7s cubic-bezier(.16,1,.3,1);
  }
  .nat-card:hover .nat-foto{transform:scale(1.03)}
  .nat-nome{
    font-family:var(--font-display);font-weight:400;
    font-size:calc(1.15rem * var(--sz-card));
    margin:1.1rem 0 .3rem;color:var(--ink);
  }
  .nat-nota{
    font-size:calc(.82rem * var(--sz-small));line-height:1.6;
    color:var(--ink-mute);margin:0;
  }
  .nat-prezzo{
    margin-top:.6rem;font-family:var(--font-serif);font-style:italic;
    font-size:calc(.95rem * var(--sz-small));color:var(--rose);
  }

  .nat-coda{max-width:76rem;margin:3.4rem auto 0;text-align:center}
  .nat-cta{
    display:inline-block;padding:1.1rem 2.6rem;text-decoration:none;
    background:var(--ink);color:var(--cream);
    font-size:calc(.66rem * var(--sz-small));letter-spacing:.26em;
    text-transform:uppercase;border:1px solid var(--ink);
    transition:background .4s ease,color .4s ease;
  }
  .nat-cta:hover{background:transparent;color:var(--ink)}

