/* Visual overhaul: variance 8, motion 5, density 6. Native CSS.
   Italian summer reference palette, permanently light; arched photography and restrained controls. Header layer 10. */
:root{--muted:#52636a;--orange:#dd682d;--sky:#b2c3d3;--sea:#689cae;--peach:#eda180;--teal:#166e78;--stone:#ebe1e0;--ink:#284b50;--surface:#fffaf6;--paper:#fffefd;--hero-wash:#edf5f6;--peach-wash:#fff0e6;--line:#ddd9d3;--body:'Manrope',Arial,sans-serif;--display:'Bodoni Moda',Georgia,serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--surface);color:var(--ink);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%;height:auto;object-fit:cover}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.container{width:min(1280px,calc(100% - 72px));margin-inline:auto}.section-space{padding-block:58px}.icon{display:inline-block;flex-shrink:0;width:20px;height:20px;background:currentColor;mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:10px;left:10px;padding:12px 20px;background:var(--peach);z-index:20;transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{height:78px;display:flex;align-items:center;gap:30px}.brand{flex-shrink:0}.brand img{border-radius:10px;width:80px;height:61px;object-fit:contain}.primary-nav{display:flex;gap:32px;margin-left:auto;font-size:14px;font-weight:700}.primary-nav a{padding:12px 0;border-bottom:2px solid transparent}.primary-nav a:hover,.primary-nav a[aria-current]{border-color:var(--orange)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 22px;border:1px solid var(--teal);border-radius:8px;background:var(--teal);color:#fff;font-size:13px;font-weight:700;line-height:1.4;white-space:nowrap;transition:transform .2s,background .2s}.button:hover{background:#105762;transform:translateY(-2px)}.button:active{transform:scale(.98)}.text-link{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:700;padding-block:12px}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.nav-toggle{border:1px solid var(--line);background:var(--paper);border-radius:8px;width:44px;height:44px;align-items:center;justify-content:center}.actions{display:flex;flex-wrap:wrap;gap:20px;align-items:center}.eyebrow{text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:1.5px}
h1{font-size:clamp(58px,6vw,82px);font-weight:700;letter-spacing:-5px;line-height:.99;margin:17px 0 20px}h2{font-size:clamp(34px,3.5vw,48px);font-weight:700;letter-spacing:-2px;line-height:1.1}h3{font-size:22px;line-height:1.3;letter-spacing:-.7px}h4{font-size:16px;line-height:1.4;letter-spacing:-.3px}.video-frame{position:relative;isolation:isolate;width:100%;height:100%;background:var(--peach);overflow:hidden}.video-poster,.video-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%}.video-frame video{opacity:0}.video-frame.is-playing video{opacity:1}.video-toggle{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:8px;min-height:42px;background:var(--paper);color:var(--ink);border:0;border-radius:8px;padding:10px 14px;font-size:12px;font-weight:700}.video-symbol{display:flex}.visit-strip{background:var(--peach-wash);border-bottom:1px solid var(--stone)}.visit-strip>.container{min-height:60px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:24px;align-items:center;font-size:12px;font-weight:600}.visit-strip a{display:flex;align-items:center;gap:8px;min-height:44px;line-height:1.5}.visit-strip .status-pill{font-size:12px}.visit-strip .icon{width:18px;height:18px}.visit-strip .strip-address{justify-self:center}.visit-strip a:last-child{justify-self:end}.visit-strip a:hover{text-decoration:underline;text-underline-offset:4px}.status-pill{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:13px}.status-pill .icon{width:18px;height:18px}
.section-heading{margin-bottom:32px;text-align:center}.section-heading p{margin-top:12px;color:var(--muted);font-size:15px}
.favourites-gallery{display:grid;grid-template-columns:1fr 1fr;gap:36px 44px;max-width:1000px;margin-inline:auto}.favourites-gallery img{width:100%;height:330px;border-radius:240px 240px 0 0;object-position:center 57%}.favourites-gallery figure:nth-child(2),.favourites-gallery figure:nth-child(4){padding-top:0}.favourites-gallery figcaption{font-size:13px;text-align:center;margin-top:18px;line-height:1.7}.menu-placeholder{display:flex;align-items:center;gap:22px;padding:28px;background:var(--hero-wash);border:1px solid var(--sea);border-radius:0;margin-top:40px}.menu-placeholder>.icon{width:36px;height:36px;color:var(--teal)}.menu-placeholder p{font-size:13px;color:var(--muted);margin-top:7px}.menu-placeholder>.button{margin-left:auto}

.about-section{position:relative;background:var(--peach-wash);padding-block:48px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.about-copy h2{font-size:clamp(36px,4vw,54px)}.about-copy>p{font-size:15px;margin-top:15px;max-width:450px}.local-note{margin-top:22px;padding-top:19px;border-top:1px solid var(--stone)}.local-note h3{font-size:16px}.local-note p{font-size:13px;margin-top:8px}.local-note .text-link{font-size:12px}
.catering-section{background:var(--surface)}.catering-grid{display:grid;grid-template-columns:.85fr 1.35fr;gap:40px;align-items:start}.catering-copy>.eyebrow{margin-bottom:15px}.catering-copy h2{font-size:48px}.catering-copy>p:not(.eyebrow){margin-top:18px;max-width:340px}.contact-email{display:flex;align-items:center;gap:9px;font-size:13px;overflow-wrap:anywhere}.catering-copy>.contact-email{margin-top:20px}.catering-copy>img{margin-top:28px;border-radius:180px 180px 0 0;width:100%;height:260px}.catering-form{border:1px solid var(--line);border-top:7px solid var(--orange);border-radius:12px;padding:28px;background:var(--paper)}.form-intro{font-size:12px;color:var(--muted);margin:10px 0 22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}.field{min-width:0}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid #a2adaf;border-radius:8px;background:var(--surface);color:var(--ink);padding:10px 12px;min-height:44px;font-size:14px}.field textarea{resize:vertical}.field textarea::placeholder{color:var(--muted)}.full{grid-column:1/-1}.form-note{font-size:11px;color:var(--muted);margin:17px 0 15px}#form-result{margin-top:18px;padding:15px;border-radius:8px;background:var(--peach);color:var(--ink);font-size:13px}.catering-form [aria-invalid=true]{border-color:#a83226}.field-error{display:block;color:#a83226;font-size:12px;margin-top:5px}
.visit-section{border-top:1px solid var(--line)}.visit-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:40px}.visit-details h2{margin-bottom:22px}.visit-details>.status-pill{padding:10px 14px;background:var(--hero-wash);border-radius:8px;margin-bottom:18px}address{font-style:normal;font-size:16px;line-height:1.7}.hours{margin:24px 0 0;max-width:390px;font-size:13px}.hours>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0}.hours dd{margin:0;white-space:nowrap}.hours .today{font-weight:700}.hours-note{font-size:11px;color:var(--muted);margin-top:6px}.visit-details>.actions{margin-top:23px}.visit-details>.contact-email{margin-top:17px}.map-wrap{min-width:0;display:flex;flex-direction:column;background:var(--sky);border-radius:12px;overflow:hidden}.map-wrap iframe{display:block;width:100%;height:100%;min-height:430px;border:0}.map-wrap>a{padding:10px 16px;font-size:12px;font-weight:700;background:var(--hero-wash)}
.site-footer{background:var(--sky);padding-block:32px 22px}.footer-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:25px}.footer-top>p{font:600 30px/1.3 var(--display)}.social-links{display:flex;gap:12px;font-size:12px;font-weight:700}.social-links a{display:flex;align-items:center;gap:12px;padding:11px 15px;min-height:56px;background:var(--paper);border:1px solid var(--line);border-radius:8px}.social-links a:hover{border-color:var(--teal);background:var(--peach-wash);text-decoration:none}.social-links .icon{width:22px;height:22px;color:var(--teal)}.social-links small{display:block;font-size:10px;font-weight:500;margin-top:2px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--stone);padding-top:18px;margin-top:22px;font-size:10px}.site-footer a:hover{text-decoration:underline}
@media(prefers-reduced-motion:no-preference){.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .55s,transform .55s}.js .reveal.is-visible{opacity:1;transform:none}@keyframes enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
@media(max-width:1050px){.container{width:calc(100% - 48px)}h1{font-size:64px;letter-spacing:-3px}.about-grid{grid-template-columns:.8fr 1.3fr}.catering-grid{gap:26px;grid-template-columns:.75fr 1.25fr}.catering-copy h2{font-size:40px}.catering-form{padding:22px}.visit-grid{gap:26px}.primary-nav{gap:24px}}
@media(max-width:767px){.container{width:calc(100% - 36px)}.section-space{padding-block:38px}.header-inner{height:72px;gap:12px}.brand img{width:65px;height:50px}.header-order{margin-left:auto;font-size:11px;padding:11px 13px;min-height:44px}.nav-toggle:not([hidden]){display:flex}.js .primary-nav{display:none;position:absolute;top:71px;left:0;right:0;margin:0;padding:18px;background:var(--paper);grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.js .primary-nav.is-open{display:grid}.primary-nav a{padding:12px}h1{font-size:clamp(54px,11vw,72px);line-height:1.01;margin:17px 0}.video-frame{height:100%}.video-poster,.video-frame video{object-position:center 53%}.visit-strip>.container{grid-template-columns:1fr;gap:0;padding-block:6px}.visit-strip a{justify-content:center;text-align:center}.visit-strip .strip-address{justify-self:stretch}.visit-strip>.container>a:last-child{display:none}h2{font-size:36px;letter-spacing:-1.5px}.about-grid{grid-template-columns:1fr;gap:24px}.about-photo{height:260px;object-position:center 45%}.about-copy h2{font-size:36px}.about-section{padding-block:28px}.about-copy>p{font-size:15px}.catering-grid{grid-template-columns:1fr;gap:25px}.catering-copy h2{font-size:40px}.catering-copy>p:not(.eyebrow){max-width:500px}.catering-copy>img{height:160px;object-position:center 35%}.catering-form{padding:22px 18px}.form-grid{gap:15px 12px}.field input,.field select,.field textarea{font-size:16px;padding-inline:10px}.visit-grid{grid-template-columns:1fr;gap:25px}.map-wrap iframe{height:340px;min-height:340px}.footer-top{flex-wrap:wrap;gap:20px}.footer-top>p{font-size:25px}.social-links{width:100%;font-size:12px}.footer-bottom{flex-wrap:wrap;font-size:10px;gap:13px}body:not(.js) .header-inner{height:auto;flex-wrap:wrap;padding-block:10px}body:not(.js) .primary-nav{order:4;width:100%;justify-content:space-between;gap:0;margin:0}.actions{gap:17px}.contact-email{font-size:12px}}
@media(max-width:390px){.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.button{padding-inline:16px}.actions{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

@media(max-width:767px){.favourites-gallery{grid-template-columns:1fr 1fr;gap:22px 14px}.favourites-gallery img{height:210px}.favourites-gallery figure:nth-child(2),.favourites-gallery figure:nth-child(4){padding-top:0}.favourites-gallery figcaption{font-size:12px}.menu-placeholder{padding:22px 18px;gap:15px;flex-wrap:wrap}.menu-placeholder>div{flex:1;min-width:180px}.menu-placeholder>.button{margin-left:0}.menu-placeholder h3{font-size:22px}}

/* Demo attribution is separate from the café contact information. */
.demo-banner{background:var(--teal);color:#fff;border-bottom:3px solid var(--peach)}
.demo-banner>.container{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;min-height:92px;padding-block:20px;font-size:16px}
.demo-banner p{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}
.demo-banner strong{display:inline-block;padding:7px 12px;border-radius:4px;background:var(--peach);color:var(--ink);text-transform:uppercase;letter-spacing:1px;font-size:16px;font-weight:800}
.demo-banner a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #fff;border-radius:6px;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.demo-banner a:hover{background:#fff;color:var(--teal)}
.demo-banner a:focus-visible{outline-color:var(--peach)}
h1,h2{color:var(--teal)}
.footer-bottom a[href^="mailto:"]{text-decoration:underline;text-underline-offset:3px}
@media(max-width:767px){.demo-banner>.container{flex-direction:column;align-items:flex-start;gap:14px;padding-block:18px;font-size:14px}.demo-banner p{gap:8px 12px}.demo-banner strong{font-size:14px}.demo-banner a{padding-inline:12px;font-size:13px}}

/* One continuous food banner; explicit pause and a static reduced-motion view. */
.moving-banner{display:flex;align-items:center;gap:16px;background:var(--peach);color:var(--ink);padding:26px 24px;overflow:hidden}
.marquee-window{min-width:0;flex:1;overflow:hidden}
.marquee-track{display:flex;width:max-content}
.marquee-group{display:flex;align-items:center;gap:60px;padding-right:60px;flex-shrink:0}
.marquee-item{display:inline-flex;align-items:center;gap:28px;flex-shrink:0}.marquee-item>span:not(.icon){font:600 clamp(22px,2.5vw,34px)/1.3 var(--display);white-space:nowrap}
.marquee-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-width:86px;min-height:44px;background:var(--paper);color:var(--teal);border:1px solid var(--line);border-radius:8px;font-size:11px;font-weight:700;padding:8px 12px}
.local-note p+p{margin-top:12px}
@media(prefers-reduced-motion:no-preference){.js .marquee-track{animation:marquee-travel 32s linear infinite}.moving-banner.is-paused .marquee-track,.marquee-window:hover .marquee-track{animation-play-state:paused}@keyframes marquee-travel{to{transform:translateX(-50%)}}}
body:not(.js) .marquee-track{width:auto}body:not(.js) .marquee-group{width:100%;min-width:0;flex-shrink:1;flex-wrap:wrap;gap:10px 26px;padding:0}body:not(.js) .marquee-group+.marquee-group{display:none}
@media(prefers-reduced-motion:reduce){.marquee-track{width:auto}.marquee-group{width:100%;min-width:0;flex-shrink:1;flex-wrap:wrap;gap:10px 26px;padding:0}.marquee-group+.marquee-group{display:none}}
@media(max-width:767px){.moving-banner{padding:15px 18px;gap:12px}.marquee-group{gap:32px;padding-right:32px}.social-links{flex-wrap:wrap}.social-links a{flex:1;min-width:145px;padding:10px 12px}.footer-top>p{font-size:23px}}


/* Cibaria-inspired hospitality direction: large wordmark, arched food photos,
   centred introductions. Andiamo’s own summer colours and supplied imagery. */
.hero{position:relative;isolation:isolate;height:620px;background:var(--sea);color:var(--paper)}
.hero-media{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1.1fr 1fr;overflow:hidden}
.hero-side{height:100%;width:100%;min-width:0;object-fit:cover}
.hero-side-left{object-position:50% 55%}.hero-side-right{object-position:50% 58%}
.hero-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px 20px 65px;text-align:center;background:linear-gradient(0deg,rgba(20,40,35,.35),rgba(20,40,35,.28));pointer-events:none}
.hero-copy .button{pointer-events:auto;background:var(--paper);border-color:var(--paper);color:var(--teal);border-radius:30px;margin-top:24px}
.hero-copy .button:hover{background:var(--peach-wash)}
.hero h1{font-family:var(--body);font-size:clamp(92px,14.5vw,210px);line-height:.95;letter-spacing:-.065em;font-weight:400;color:var(--paper);margin:22px 0 16px;text-shadow:0 2px 25px #0003}
.hero h1 span{display:block;font-size:clamp(18px,2vw,29px);letter-spacing:.45em;line-height:1.6;margin-top:10px;padding-left:.45em}
.hero .eyebrow{letter-spacing:3px}.hero-location{font-size:15px;font-weight:600;text-shadow:0 1px 6px #0008}
.hero .video-frame{min-width:0}.video-toggle{z-index:2;bottom:18px;right:18px}.hero .video-poster,.hero video{object-position:50% 52%}
.welcome{text-align:center;padding-block:48px 42px;max-width:820px}
.welcome h2{margin:16px 0 20px;font-size:clamp(38px,4.5vw,62px);line-height:1.1}
h2 em{font-family:var(--display);font-weight:600;letter-spacing:-1.5px}
.welcome>p:last-child{max-width:620px;margin:auto;font-size:15px}
.section-heading .eyebrow{color:var(--teal);font-size:11px;margin:0 0 12px}
.favourites-gallery figcaption span{display:block;color:var(--teal);font-size:25px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}
.about-photo{width:100%;height:540px;border-radius:260px 260px 0 0;object-position:center 40%}
.about-copy>.eyebrow{margin:0 0 16px;font-size:11px}
.local-note{border:0;padding-top:0}.about-copy>p{max-width:490px}
.marquee-item>span:not(.icon){font-style:italic;font-size:clamp(30px,3.5vw,48px)}
.footer-wordmark{font-size:clamp(68px,16vw,230px);font-weight:400;letter-spacing:-.065em;text-align:center;color:var(--teal);line-height:1.1;margin:0 18px 32px}
@media(min-width:768px) and (max-width:1050px){.about-grid{grid-template-columns:1fr 1fr;gap:32px}.about-photo{height:500px}.favourites-gallery img{height:300px}}
@media(max-width:767px){.hero{height:510px}.hero-media{grid-template-columns:1fr}.hero-side{display:none}.hero h1{font-size:clamp(65px,16.5vw,125px);letter-spacing:-.065em}.hero-copy{padding-bottom:70px}.hero-location{font-size:13px}.hero .eyebrow{font-size:10px}.hero h1 span{font-size:18px}.welcome{padding-block:36px}.welcome h2{font-size:38px}.welcome>p:last-child{font-size:14px}.favourites-gallery{gap:26px 16px}.favourites-gallery img{height:240px;border-radius:150px 150px 0 0}.favourites-gallery figcaption{font-size:11px;margin-top:12px}.favourites-gallery figcaption span{font-size:20px}.about-grid{grid-template-columns:1fr;gap:28px}.about-photo{height:380px;max-width:400px;margin:auto}.about-copy h2{font-size:40px}.about-section{padding-block:32px}.catering-copy>img{height:310px;border-radius:160px 160px 0 0}.moving-banner{padding:20px 18px}.footer-wordmark{margin-bottom:24px}.menu-placeholder{margin-top:28px}.hero .video-toggle{bottom:16px;right:16px}}
@media(max-width:390px){.favourites-gallery img{height:200px}.favourites-gallery figcaption span{font-size:18px}.welcome h2{font-size:35px}}

.marquee-item .marquee-icon{width:36px;height:36px;color:var(--teal)}
@media(max-width:767px){.marquee-item{gap:18px}.marquee-item .marquee-icon{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.marquee-item{max-width:100%;flex-shrink:1}.marquee-item>span:not(.icon){white-space:normal}}
body:not(.js) .marquee-item{max-width:100%;flex-shrink:1}body:not(.js) .marquee-item>span:not(.icon){white-space:normal}
