/* Porto dell'Amore – Symfony migration of the proven visual language */
:root{--c-oliva:#564e39;--c-salvia:#6f6549;--c-carta:#fcf9f2;--c-terra:#ad452a;--c-sabbia:#eed3b0;--c-linea:#e8ddc7;--c-ink:#2e2a20;--c-ink-soft:#6d6553;--f-display:'Marcellus',Georgia,serif;--f-body:'Mulish',system-ui,sans-serif;--fs-hero:clamp(3rem,10vw,6.5rem);--fs-h1:clamp(2.2rem,6vw,3.5rem);--fs-h2:clamp(1.6rem,4vw,2.2rem);--fs-h3:1.15rem;--fs-body:1.0625rem;--fs-small:.875rem;--wrap-max:72rem;--wrap-narrow:54rem;--space-section:clamp(3.5rem,9vw,6.5rem);--radius:3px;--transition:180ms ease}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--f-body);font-size:var(--fs-body);line-height:1.65;color:var(--c-ink);background:var(--c-carta);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.15;margin:0 0 .6em}p{margin:0 0 1em}a{color:var(--c-terra);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--c-terra);outline-offset:3px;border-radius:var(--radius)}address{font-style:normal}.wrap{width:min(var(--wrap-max),calc(100% - 2.5rem));margin-inline:auto}.wrap--narrow{max-width:var(--wrap-narrow)}.section{padding-block:var(--space-section)}.section--tinted{background:var(--c-sabbia)}.grid{display:grid;gap:2.5rem}.eyebrow{font-family:var(--f-display);font-size:var(--fs-small);letter-spacing:.28em;text-transform:uppercase;color:var(--c-terra);margin:0 0 .9rem}.eyebrow--light{color:var(--c-sabbia)}.section__title{font-size:var(--fs-h2)}.section__more{margin-top:2.5rem}.prose{max-width:64ch}.prose h2{font-size:var(--fs-h3);letter-spacing:.06em;text-transform:uppercase;margin-top:2.2em}.text-link{font-weight:700;letter-spacing:.02em}.wave{display:block;width:7.5rem;height:.75rem;color:var(--c-terra)}.wave--hero{margin-block:1.6rem}.wave--footer{margin:0 auto 2.5rem;color:var(--c-salvia)}
.skip-link{position:absolute;left:1rem;top:-100%;z-index:100;padding:.6rem 1rem;background:var(--c-carta);color:var(--c-ink);font-weight:700}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:50;background:var(--c-carta);border-bottom:1px solid var(--c-linea)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.7rem}.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:inherit;line-height:1.2}.brand__monogram{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid var(--c-linea);border-radius:50%;font-family:var(--f-display);font-size:1.5rem;color:var(--c-terra);background:#fff}.brand__name{display:block;font-family:var(--f-display);font-size:1.35rem;letter-spacing:.03em}.brand__tag{display:block;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-ink-soft)}.site-nav__list{list-style:none;margin:0;padding:0;display:flex;gap:1.8rem;align-items:center}.site-nav a{color:var(--c-ink);text-decoration:none;font-size:.95rem;letter-spacing:.04em;padding-block:.35rem;border-bottom:2px solid transparent;transition:border-color var(--transition),background var(--transition),color var(--transition)}.site-nav a:hover,.site-nav a[aria-current=page]{border-bottom-color:var(--c-terra)}.site-nav__cta{border:1px solid var(--c-terra)!important;border-radius:var(--radius);padding:.45rem 1.1rem!important}.site-nav__cta:hover{background:var(--c-terra);color:var(--c-carta)}.nav-toggle{display:none;background:none;border:1px solid var(--c-ink-soft);border-radius:var(--radius);padding:.7rem .8rem;cursor:pointer}.nav-toggle__bar,.nav-toggle__bar::before,.nav-toggle__bar::after{display:block;width:1.4rem;height:2px;background:var(--c-ink);transition:transform var(--transition),opacity var(--transition)}.nav-toggle__bar{position:relative}.nav-toggle__bar::before,.nav-toggle__bar::after{content:'';position:absolute;left:0}.nav-toggle__bar::before{top:-6px}.nav-toggle__bar::after{top:6px}.nav-toggle[aria-expanded=true] .nav-toggle__bar{background:transparent}.nav-toggle[aria-expanded=true] .nav-toggle__bar::before{transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle__bar::after{transform:translateY(-6px) rotate(-45deg)}
.button{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.8rem;border-radius:var(--radius);font-weight:700;letter-spacing:.04em;text-decoration:none;transition:background var(--transition),color var(--transition),border-color var(--transition)}.button--primary{background:var(--c-terra);color:var(--c-carta);border:1px solid var(--c-terra)}.button--primary:hover{background:#8c3520;border-color:#8c3520}.button--ghost{color:var(--c-carta);border:1px solid rgba(252,249,242,.55)}.button--ghost:hover{border-color:var(--c-carta)}
.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--c-oliva);color:var(--c-carta);padding-block:clamp(4.5rem,14vw,9rem)}.hero::before{content:'';position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 78% 22%,rgba(238,211,176,.16),transparent 32%),linear-gradient(135deg,#655c43 0%,#443e2e 58%,#373224 100%)}.hero__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(62,56,41,.18),rgba(62,56,41,.36))}.hero__title{font-size:var(--fs-hero);letter-spacing:.01em;margin:0}.hero__lead{max-width:34rem;font-size:1.15rem;color:var(--c-sabbia)}.hero__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}.page-head{background:var(--c-oliva);color:var(--c-carta);padding-block:clamp(3rem,8vw,5rem)}.page-head--compact{padding-block:clamp(2rem,6vw,3.5rem)}.page-head__title{font-size:var(--fs-h1);margin:0}.page-head__lead{max-width:42rem;margin-top:1rem;color:var(--c-sabbia)}
.feature-list{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;gap:2rem}.feature{border-top:2px solid var(--c-salvia);padding-top:1.2rem}.feature__title{font-size:var(--fs-h3);letter-spacing:.04em}.feature p{color:var(--c-ink-soft);margin:0}.cta-card{background:var(--c-oliva);color:var(--c-carta);padding:2.2rem;border-radius:var(--radius);align-self:start;box-shadow:0 18px 55px rgba(46,42,32,.08)}.cta-card__title{font-size:var(--fs-h3);letter-spacing:.04em}.cta-card a:not(.button){color:var(--c-carta)}.cta-card .button{margin-top:.6rem}.hours{margin:1.5rem 0 0;max-width:28rem}.hours__row{display:flex;justify-content:space-between;gap:1rem;padding-block:.55rem;border-bottom:1px solid var(--c-linea)}.hours dt{font-weight:600}.hours dd{margin:0;color:var(--c-ink-soft)}.hours__special{margin-top:1.2rem;padding:.8rem 1rem;border-left:3px solid var(--c-terra);background:var(--c-sabbia);font-size:.92rem}
.menu-jump{position:sticky;top:4.55rem;z-index:40;background:rgba(252,249,242,.97);border-bottom:1px solid var(--c-linea);backdrop-filter:blur(8px)}.menu-jump__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;column-gap:1.6rem}.menu-jump a{display:inline-block;padding-block:.65rem;white-space:nowrap;color:var(--c-ink);text-decoration:none;font-size:.92rem;letter-spacing:.03em;border-bottom:2px solid transparent}.menu-jump a:hover{border-bottom-color:var(--c-terra)}.menu-page{padding-bottom:var(--space-section)}.menu-section{padding-block:clamp(2.5rem,6vw,4rem) 0;scroll-margin-top:10.5rem}.menu-section__head{position:relative;padding-bottom:.7rem;border-bottom:1px solid var(--c-linea)}.menu-section__title{font-size:var(--fs-h2);color:var(--c-salvia);margin:0}.menu-section__note{font-style:italic;color:var(--c-ink-soft);margin:.5rem 0 0}.menu-subsection{padding-top:clamp(1.8rem,4vw,2.7rem);scroll-margin-top:10rem}.menu-subsection__head{display:grid;grid-template-columns:minmax(1rem,1fr) auto minmax(1rem,1fr);align-items:center;gap:1rem;margin-bottom:.35rem;text-align:center}.menu-subsection__line{height:1px;background:linear-gradient(90deg,transparent,var(--c-linea))}.menu-subsection__line:last-child{background:linear-gradient(90deg,var(--c-linea),transparent)}.menu-subsection__title{margin:0;color:var(--c-terra);font-size:clamp(1.25rem,2.4vw,1.6rem);letter-spacing:.035em}.menu-subsection__note{margin:.18rem 0 0;color:var(--c-ink-soft);font-size:.82rem;font-style:italic}.dish-list{list-style:none;margin:1.6rem 0 0;padding:0}.dish-list--subsection{margin-top:.85rem}.dish{padding-block:1rem}.dish+.dish{border-top:1px solid rgba(232,221,199,.6)}.dish__head{display:flex;align-items:baseline;gap:.6rem}.dish__name{font-size:var(--fs-h3);margin:0}.dish__number{margin-right:.35rem;color:var(--c-terra);font-size:.8em}.dish__tag{display:inline-block;vertical-align:middle;font-family:var(--f-body);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--c-salvia);border:1px solid currentColor;border-radius:999px;padding:.08rem .5rem;margin-left:.35rem}.dish__tag--soldout{color:var(--c-terra);font-weight:700}.dish__dots{flex:1;border-bottom:2px dotted var(--c-sabbia);transform:translateY(-4px);min-width:1.5rem}.dish__price{font-family:var(--f-display);font-size:1.08rem;white-space:nowrap}.dish__desc{margin:.3rem 0 0;color:var(--c-ink-soft);max-width:50ch}.dish__meta{margin:.3rem 0 0;font-size:.78rem;color:var(--c-ink-soft)}.dish--soldout .dish__name,.dish--soldout .dish__price,.dish--soldout .dish__desc{opacity:.55}.menu-footnote{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--c-linea);font-size:var(--fs-small);color:var(--c-ink-soft)}.menu-empty{margin:3rem 0;padding:1.5rem;border:1px solid var(--c-linea);color:var(--c-ink-soft);text-align:center}
.site-footer{margin-top:var(--space-section);background:var(--c-oliva);color:var(--c-carta);padding-block:3.5rem 2rem;text-align:center}.site-footer a{color:var(--c-carta)}.site-footer__grid{display:grid;gap:2.5rem;text-align:left}.site-footer__brand{font-family:var(--f-display);font-size:1.4rem;margin:0 0 .5rem}.site-footer__address{color:var(--c-sabbia)}.site-footer__heading{font-family:var(--f-body);font-size:.8rem;letter-spacing:.25em;text-transform:uppercase;color:var(--c-sabbia);margin:0 0 .8rem}.site-footer .hours{margin-top:0}.site-footer .hours__row{border-color:rgba(251,250,247,.15)}.site-footer .hours dd{color:var(--c-sabbia)}.site-footer__social{display:flex;gap:1rem}.site-footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(251,250,247,.15);font-size:var(--fs-small);color:var(--c-sabbia)}.site-footer__legal p{margin:0}.site-footer__legal-nav{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem}.legal-copy{min-height:15rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(min-width:48em){.grid--2{grid-template-columns:1fr 1fr;gap:4rem}.feature-list{grid-template-columns:repeat(3,1fr);gap:3rem}.site-footer__grid{grid-template-columns:repeat(3,1fr);gap:3rem}}
@media(max-width:47.9375em){.nav-toggle{display:block}.brand__tag{letter-spacing:.18em}.site-nav{position:absolute;inset:100% 0 auto 0;background:var(--c-carta);border-bottom:1px solid var(--c-linea);display:none}.site-nav.is-open{display:block}.site-nav__list{flex-direction:column;align-items:stretch;gap:0;padding:1rem 1.25rem 1.5rem}.site-nav a{display:block;padding:.8rem .25rem;border-bottom:1px solid var(--c-linea)}.site-nav__cta{margin-top:.8rem;text-align:center}.menu-jump{top:4.55rem}.dish__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem .8rem}.dish__dots{display:none}.dish__price{text-align:right}.site-footer__legal{flex-direction:column;align-items:center}.site-footer__legal-nav{justify-content:center}}
@media(max-width:37.5em){.wrap{width:min(var(--wrap-max),calc(100% - 1.5rem))}.hero__actions{display:grid}.hero__actions .button{width:100%}.menu-subsection__head{grid-template-columns:1fr;gap:.45rem;text-align:left}.menu-subsection__line{display:none}.menu-subsection__title{padding-left:.8rem;border-left:3px solid var(--c-terra)}.menu-subsection__note{padding-left:.8rem}.dish__head{grid-template-columns:1fr}.dish__price{text-align:left;color:var(--c-terra)}.dish__tag{margin:.3rem .2rem 0 0}.hours__row{font-size:.94rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media print{.site-header,.site-footer,.menu-jump,.hero__actions{display:none}.hero,.page-head{background:none;color:#000}.menu-section{break-inside:avoid-page}.dish{break-inside:avoid}}
