@import url('./fonts.css');

:root{
  --background: 38 33% 96%;
  --foreground: 25 18% 14%;
  --primary: 14 52% 45%;
  --primary-foreground: 38 40% 97%;
  --secondary: 90 14% 42%;
  --muted: 36 22% 90%;
  --muted-foreground: 25 12% 38%;
  --border: 30 18% 86%;
  --cream: 38 33% 96%;
  --sand: 36 30% 86%;
  --shadow-soft: 0 1px 2px hsl(25 18% 14% / .04), 0 8px 24px hsl(25 18% 14% / .06);
  --shadow-elegant: 0 30px 80px -20px hsl(25 18% 14% / .18);
  --ease: cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;border:0 solid hsl(var(--border))}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:hsl(var(--background));
  color:hsl(var(--foreground));
  -webkit-font-smoothing:antialiased;
  font-size:16px;line-height:1.5;
  font-feature-settings:"ss01","cv11";
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;color:inherit}
input{font:inherit;color:inherit}
h1,h2,h3,h4,h5,.font-display{font-family:'Fraunces',Georgia,serif;font-weight:400;letter-spacing:-.02em;line-height:1.05}
.italic{font-style:italic}
.text-primary{color:hsl(var(--primary))}
.text-muted{color:hsl(var(--muted-foreground))}
.text-balance{text-wrap:balance}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:hsl(var(--muted-foreground));font-weight:500}
.container{max-width:72rem;margin:0 auto;padding:0 1.5rem}
@media(min-width:768px){.container{padding:0 2.5rem}}

/* HEADER */
.header{position:fixed;top:0;left:0;right:0;z-index:50;transition:all .5s var(--ease)}
.header.scrolled{background:hsla(38,33%,96%,.85);backdrop-filter:blur(12px);border-bottom:1px solid hsl(var(--border)/.6)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:5rem}
.brand{display:flex;align-items:center;gap:.5rem}
.brand-dot{width:.5rem;height:.5rem;border-radius:9999px;background:hsl(var(--primary));transition:transform .3s var(--ease)}
.brand:hover .brand-dot{transform:scale(1.5)}
.brand-name{font-family:'Fraunces',serif;font-size:1.125rem;letter-spacing:-.02em}
.nav{display:none;gap:2.25rem;align-items:center}
@media(min-width:1024px){.nav{display:flex}}
.nav a{font-size:13px;letter-spacing:.02em;color:hsl(var(--muted-foreground));transition:color .3s;position:relative}
.nav a.active,.nav a:hover{color:hsl(var(--foreground))}
.nav a::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:9999px;font-size:14px;letter-spacing:.02em;transition:all .3s var(--ease)}
.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}
.btn-primary:hover{background:hsl(var(--primary)/.9);box-shadow:0 10px 25px -10px hsl(var(--primary)/.5)}
.btn-lg{padding:1rem 1.75rem}
.btn-outline{border:1px solid hsl(var(--foreground)/.3);padding:1rem 1.75rem;border-radius:9999px;font-size:14px;display:inline-flex;align-items:center;gap:.5rem;transition:all .3s var(--ease)}
.btn-outline:hover{background:hsl(var(--foreground));color:hsl(var(--background))}
.header .btn-primary{display:none}
@media(min-width:768px){.header .btn-primary{display:inline-flex}}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:6rem;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media(min-width:1024px){.hero-grid{grid-template-columns:repeat(12,1fr);gap:3rem}}
.hero-text{z-index:1}
@media(min-width:1024px){.hero-text{grid-column:span 6}}
.hero h1{font-size:clamp(3rem,7vw,5.5rem);text-wrap:balance}
.hero-sub{margin-top:2rem;font-size:1.125rem;color:hsl(var(--muted-foreground));max-width:28rem;line-height:1.6;text-wrap:balance}
.hero-ctas{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:1rem}
.hero-stats{margin-top:4rem;display:flex;gap:2.5rem;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:hsl(var(--muted-foreground));flex-wrap:wrap}
.hero-stats .num{display:block;font-family:'Fraunces',serif;font-size:1.5rem;color:hsl(var(--foreground));text-transform:none;letter-spacing:normal;margin-bottom:.25rem}
.hero-stats .sep{width:1px;height:2.5rem;background:hsl(var(--border))}
.hero-image-wrap{position:relative}
@media(min-width:1024px){.hero-image-wrap{grid-column:span 6}}
.hero-image-glow{position:absolute;inset:-2rem;background:hsl(var(--sand)/.5);border-radius:9999px;filter:blur(60px);z-index:-1}
.hero-image{aspect-ratio:4/5;overflow:hidden;border-radius:2px;box-shadow:var(--shadow-elegant)}
.hero-image img{width:100%;height:100%;object-fit:cover;animation:kenBurns 18s ease-out both}
.hero-card{position:absolute;bottom:-1.5rem;left:-1.5rem;background:hsl(var(--background));border:1px solid hsl(var(--border));padding:1rem 1.25rem;border-radius:2px;box-shadow:var(--shadow-soft);display:none}
@media(min-width:768px){.hero-card{display:block}}
.hero-card p:last-child{font-family:'Fraunces',serif;font-size:1.125rem;margin-top:.25rem}
.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);font-size:10px;text-transform:uppercase;letter-spacing:.3em;color:hsl(var(--muted-foreground))}

@keyframes kenBurns{from{transform:scale(1)}to{transform:scale(1.08)}}
@keyframes reveal{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.reveal{animation:reveal .9s var(--ease) both}
.reveal-d1{animation-delay:.1s}
.reveal-d2{animation-delay:.2s}

/* SECTIONS */
section{padding:7rem 0}
@media(min-width:768px){section{padding:10rem 0}}
.bg-cream{background:hsl(var(--cream))}
.bg-muted{background:hsl(var(--muted)/.4)}

.grid12{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media(min-width:1024px){.grid12{grid-template-columns:repeat(12,1fr);gap:4rem}}
.span5{grid-column:span 1}
.span7{grid-column:span 1}
@media(min-width:1024px){.span5{grid-column:span 5}.span7{grid-column:span 7;padding-left:3rem}}

h2.section-title{font-size:clamp(2.25rem,5vw,3.75rem);text-wrap:balance;line-height:1.05}
.section-lead{margin-top:1.5rem;font-size:1.125rem;color:hsl(var(--muted-foreground));max-width:32rem;line-height:1.6}

.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:4rem;flex-wrap:wrap;gap:1.5rem}
.link{font-size:14px;color:hsl(var(--muted-foreground));position:relative}
.link::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.link:hover{color:hsl(var(--foreground))}
.link:hover::after{transform:scaleX(1);transform-origin:left}

/* CRAFT */
.craft-img{aspect-ratio:4/5;overflow:hidden;border-radius:2px}
.craft-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}
.craft-img:hover img{transform:scale(1.05)}
.values{margin-top:3rem;display:grid;grid-template-columns:1fr;gap:2rem 2.5rem}
@media(min-width:640px){.values{grid-template-columns:1fr 1fr}}
.value{border-top:1px solid hsl(var(--border));padding-top:1.25rem}
.value h4{font-family:'Fraunces',serif;font-size:1.25rem}
.value p{font-size:14px;color:hsl(var(--muted-foreground));margin-top:.5rem;line-height:1.6}

/* MENU */
.menu-grid{display:grid;grid-template-columns:1fr;gap:3rem}
@media(min-width:768px){.menu-grid{grid-template-columns:1fr 1fr;gap:5rem 5rem}}
.menu-card .img{aspect-ratio:5/6;overflow:hidden;border-radius:2px;background:hsl(var(--muted));margin-bottom:1.5rem}
.menu-card .img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.menu-card:hover .img img{transform:scale(1.05)}
.menu-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.menu-meta .num{font-size:12px;color:hsl(var(--muted-foreground));letter-spacing:.15em}
.menu-meta .tag{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:hsl(var(--secondary))}
.menu-card h3{font-family:'Fraunces',serif;font-size:1.75rem;margin-top:.75rem;transition:color .3s}
@media(min-width:768px){.menu-card h3{font-size:2rem}}
.menu-card:hover h3{color:hsl(var(--primary))}
.menu-card p{color:hsl(var(--muted-foreground));margin-top:.75rem;line-height:1.6}

/* LOCATIONS */
.locations{margin-top:5rem;border-top:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border))}
.location{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;gap:1.5rem;padding:2rem .5rem;border-bottom:1px solid hsl(var(--border));transition:background .3s}
.location:last-child{border-bottom:0}
.location:hover{background:hsl(var(--background)/.6)}
.location .idx{grid-column:span 1;font-size:12px;color:hsl(var(--muted-foreground));letter-spacing:.15em}
.location .name{grid-column:span 4;font-family:'Fraunces',serif;font-size:2rem;transition:color .3s}
@media(min-width:768px){.location .name{grid-column:span 3;font-size:2.25rem}}
.location:hover .name{color:hsl(var(--primary))}
.location .note{grid-column:span 5;font-size:14px;color:hsl(var(--muted-foreground))}
@media(min-width:768px){.location .note{grid-column:span 6}}
.location .time{grid-column:span 2;text-align:right;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:hsl(var(--muted-foreground));transition:color .3s}
.location:hover .time{color:hsl(var(--foreground))}

/* GALLERY */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
@media(min-width:768px){.gallery{gap:1.5rem}}
.g-item{overflow:hidden;border-radius:2px}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}
.g-item:hover img{transform:scale(1.05)}
.g1{grid-column:span 12;aspect-ratio:4/3}
.g2{grid-column:span 6;aspect-ratio:1/1}
.g3{grid-column:span 6;aspect-ratio:4/5}
.g4{grid-column:span 12;aspect-ratio:4/3}
@media(min-width:768px){.g1{grid-column:span 7}.g2{grid-column:span 5}.g3{grid-column:span 5}.g4{grid-column:span 7}}

/* REVIEWS */
.reviews{display:grid;grid-template-columns:1fr;gap:2rem;margin-top:5rem}
@media(min-width:768px){.reviews{grid-template-columns:repeat(3,1fr);gap:3rem}}
.review{background:hsl(var(--background));border:1px solid hsl(var(--border));padding:2rem;border-radius:2px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
@media(min-width:1024px){.review{padding:2.5rem}}
.review:hover{transform:translateY(-4px);box-shadow:var(--shadow-elegant)}
.review .quote-mark{color:hsl(var(--primary));font-family:'Fraunces',serif;font-size:2.5rem;line-height:1}
.review blockquote{margin-top:1rem;font-family:'Fraunces',serif;font-size:1.25rem;line-height:1.35;text-wrap:balance}
.review figcaption{margin-top:2rem;padding-top:1.5rem;border-top:1px solid hsl(var(--border))}
.review .nm{font-weight:500}
.review .role{font-size:11px;color:hsl(var(--muted-foreground));margin-top:.25rem;text-transform:uppercase;letter-spacing:.1em}

/* ORDER */
.order-form{background:hsl(var(--muted)/.5);padding:2rem;border-radius:2px;border:1px solid hsl(var(--border))}
@media(min-width:1024px){.order-form{padding:2.5rem}}
.order-form label{display:block;margin-bottom:1rem}
.order-row{display:flex;gap:.75rem}
.order-row input{flex:1;height:3.5rem;background:hsl(var(--background));border:1px solid hsl(var(--border));padding:0 1rem;border-radius:2px;font-size:1rem;outline:none;transition:border-color .3s}
.order-row input:focus{border-color:hsl(var(--primary))}
.order-row button{background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:0 1.5rem;border-radius:2px;transition:background .3s;font-size:14px;letter-spacing:.02em;white-space:nowrap}
.order-row button:hover{background:hsl(var(--primary)/.9)}
.order-form .help{font-size:12px;color:hsl(var(--muted-foreground));margin-top:1.25rem;line-height:1.6}

/* FAQ */
.faq{border-top:1px solid hsl(var(--border))}
.faq-item{border-bottom:1px solid hsl(var(--border))}
.faq-q{width:100%;text-align:left;font-family:'Fraunces',serif;font-size:1.25rem;padding:1.5rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:color .3s}
@media(min-width:768px){.faq-q{font-size:1.5rem}}
.faq-q:hover{color:hsl(var(--primary))}
.faq-q .chev{font-size:1rem;transition:transform .4s var(--ease);color:hsl(var(--muted-foreground))}
.faq-item.open .faq-q .chev{transform:rotate(180deg);color:hsl(var(--primary))}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease),padding .3s}
.faq-a-inner{color:hsl(var(--muted-foreground));line-height:1.7;padding-bottom:1.5rem;max-width:42rem}
.faq-item.open .faq-a{max-height:300px}

/* CONTACT */
.contact-list{margin-top:2.5rem;display:flex;flex-direction:column;gap:1.5rem}
.contact-list a{font-size:1.125rem;position:relative}
.contact-list a::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.contact-list a:hover::after{transform:scaleX(1);transform-origin:left}
.contact-list .eyebrow{margin-bottom:.5rem;display:block}

/* FOOTER */
footer{border-top:1px solid hsl(var(--border));background:hsl(var(--background))}
.footer-inner{padding:4rem 0}
.footer-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:flex-start}
@media(min-width:768px){.footer-grid{grid-template-columns:5fr 3fr 2fr 2fr}}
.footer-brand p{font-size:14px;color:hsl(var(--muted-foreground));max-width:24rem;line-height:1.6;margin-top:1rem}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}
.footer-col a{font-size:14px;color:hsl(var(--muted-foreground))}
.footer-col a:hover{color:hsl(var(--foreground))}
.footer-bot{margin-top:4rem;padding-top:2rem;border-top:1px solid hsl(var(--border));display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:12px;color:hsl(var(--muted-foreground))}

/* TOAST */
.toast-wrap{position:fixed;bottom:1.5rem;right:1.5rem;z-index:100;display:flex;flex-direction:column;gap:.5rem}
.toast{background:hsl(var(--background));border:1px solid hsl(var(--border));padding:1rem 1.25rem;border-radius:4px;box-shadow:var(--shadow-elegant);min-width:260px;animation:reveal .4s var(--ease) both}
.toast.success{border-left:3px solid hsl(var(--secondary))}
.toast.error{border-left:3px solid hsl(var(--primary))}
.toast .t-title{font-weight:500;font-size:14px}
.toast .t-desc{font-size:12px;color:hsl(var(--muted-foreground));margin-top:.25rem}
