:root {
  --cream: #f7f0e4;
  --paper: #fffaf2;
  --sand: #dbc3a3;
  --toast: #a86e43;
  --brown: #4a2f20;
  --espresso: #24150f;
  --muted: #705d51;
  --white: #ffffff;
  --radius: 24px;
  --shadow: 0 18px 50px rgba(54, 32, 20, .14);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "DM Sans", system-ui, sans-serif; color: var(--espresso); background: var(--paper); }
img { width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.site-header { position: sticky; top: 0; z-index: 40; min-height: 78px; padding: 14px clamp(20px,5vw,70px); display: flex; align-items:center; justify-content:space-between; background: rgba(255,250,242,.92); backdrop-filter: blur(16px); border-bottom:1px solid rgba(74,47,32,.08); }
.brand { display:flex; align-items:center; gap:11px; }
.brand-sticker { display:block; object-fit:contain; }
.brand-sticker-header { width:64px; height:64px; }
.site-nav { display:flex; gap:28px; align-items:center; font-weight:600; }
.site-nav a:hover { color:var(--toast); }
.site-nav .nav-order { padding:10px 16px; border-radius:999px; background:var(--toast); color:white; }
.site-nav .nav-order:hover { background:#8d5835; color:white; }
.nav-toggle { display:none; border:0; background:var(--brown); color:white; border-radius:999px; padding:10px 14px; }
.hero { min-height:74vh; position:relative; display:flex; align-items:end; overflow:hidden; background:var(--espresso); }
.hero > img { position:absolute; inset:0; height:100%; object-fit:cover; object-position:center 50%; background:var(--espresso); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(28,15,9,.82) 0%, rgba(28,15,9,.58) 46%, rgba(28,15,9,.12) 100%), linear-gradient(0deg, rgba(28,15,9,.38), transparent 45%); }
.hero-content { position:relative; z-index:2; max-width:760px; padding:80px clamp(24px,7vw,100px) 92px; color:white; }
.eyebrow { text-transform:uppercase; letter-spacing:.18em; font-size:12px; font-weight:700; margin:0 0 14px; color:#f4d9b7; }
.eyebrow.dark { color:var(--toast); }
h1,h2,h3 { font-family:"Playfair Display", serif; margin-top:0; }
h1 { font-size:clamp(48px,7vw,88px); line-height:.96; margin-bottom:24px; }
h2 { font-size:clamp(36px,4.8vw,60px); line-height:1.02; margin-bottom:18px; }
h3 { font-size:22px; }
.hero-content > p:not(.eyebrow) { font-size:19px; line-height:1.65; max-width:640px; color:rgba(255,255,255,.88); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.btn { display:inline-flex; justify-content:center; align-items:center; border-radius:999px; padding:14px 22px; font-weight:700; border:1px solid transparent; cursor:pointer; }
.btn-primary { background:var(--toast); color:white; }
.btn-primary:hover { background:#8d5835; }
.btn-ghost { color:white; border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.08); }
.section-pad { padding:90px clamp(24px,7vw,100px); }
.intro { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; background:var(--cream); }
.intro p:last-child { font-size:19px; line-height:1.8; color:var(--muted); margin:0; }
.feature-strip { display:grid; grid-template-columns:repeat(3,1fr); background:var(--espresso); }
.feature-strip article { position:relative; min-height:330px; overflow:hidden; }
.feature-strip img { position:absolute; inset:0; height:100%; object-fit:cover; transition:transform .45s ease; }
.feature-strip article:hover img { transform:scale(1.04); }
.feature-strip article:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(25,12,6,.75), transparent 58%); }
.feature-strip article div { position:absolute; z-index:2; left:28px; bottom:24px; color:white; }
.feature-strip span { font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:#f3d5b1; }
.feature-strip h3 { margin:6px 0 0; font-size:30px; }
.menu-section { background:var(--paper); }
.section-heading { max-width:760px; margin-bottom:38px; }
.section-heading p:last-child { color:var(--muted); line-height:1.7; }
.section-heading.compact { margin-bottom:26px; }
.menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.menu-card { display:flex; justify-content:space-between; gap:22px; padding:26px; border:1px solid rgba(74,47,32,.12); border-radius:18px; background:white; box-shadow:0 8px 28px rgba(50,28,16,.05); }
.menu-card h3 { margin-bottom:8px; }
.menu-card p { margin:0; color:var(--muted); line-height:1.55; }
.menu-card strong { color:var(--toast); text-align:right; min-width:92px; }
.menu-card.featured { background:#f3e5d2; border-color:#e7caa6; }
.menu-note { margin-top:26px; color:var(--muted); font-size:14px; }
.story { display:grid; grid-template-columns:1.1fr .9fr; background:var(--brown); color:white; min-height:620px; }
.story-image img { height:100%; object-fit:cover; }
.story-copy { padding:80px clamp(28px,6vw,86px); display:flex; flex-direction:column; justify-content:center; }
.story-copy p:not(.eyebrow) { color:rgba(255,255,255,.78); line-height:1.8; font-size:18px; }
.gallery-section { background:#f0dfc7; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.gallery-grid figure { margin:0; position:relative; border-radius:18px; overflow:hidden; min-height:320px; box-shadow:var(--shadow); background:#d8c0a3; }
.gallery-grid figure.wide { grid-column:span 2; }
.gallery-grid img { height:100%; object-fit:cover; }
.gallery-grid figcaption { position:absolute; left:16px; bottom:14px; color:white; background:rgba(34,20,13,.72); padding:8px 12px; border-radius:999px; font-size:13px; }
.tiktok-section { display:grid; grid-template-columns:minmax(0,.82fr) minmax(340px,1.18fr); gap:clamp(44px,7vw,96px); align-items:center; background:var(--cream); }
.tiktok-copy > p:not(.eyebrow) { max-width:590px; color:var(--muted); font-size:18px; line-height:1.75; }
.tiktok-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.btn-secondary { border-color:rgba(74,47,32,.28); background:transparent; color:var(--brown); }
.btn-secondary:hover { border-color:var(--toast); background:rgba(168,110,67,.08); color:var(--toast); }
.tiktok-embed-panel { min-width:0; width:100%; max-width:650px; justify-self:center; padding:22px; border:1px solid rgba(74,47,32,.12); border-radius:var(--radius); background:var(--paper); box-shadow:var(--shadow); }
.tiktok-embed-wrap { min-width:0; overflow:hidden; border-radius:16px; background:#fff; }
.tiktok-embed { width:100% !important; min-width:0 !important; max-width:605px !important; margin:0 auto !important; border:0; }
.tiktok-embed section { padding:24px; color:var(--muted); line-height:1.65; }
.tiktok-embed section a { color:var(--toast); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.tiktok-fallback { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:18px 4px 0; }
.tiktok-fallback p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.tiktok-fallback a { flex:0 0 auto; color:var(--toast); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.tiktok-embed-panel[data-embed-loaded="true"] .tiktok-fallback p { display:none; }
.order-section { display:grid; grid-template-columns:.85fr 1.15fr; gap:54px; padding:90px clamp(24px,7vw,100px); background:var(--espresso); color:white; }
.order-copy p:not(.eyebrow) { color:rgba(255,255,255,.72); line-height:1.75; font-size:18px; }
.order-notice { margin-top:30px; border:1px solid rgba(244,217,183,.42); border-radius:18px; padding:20px; display:grid; gap:7px; background:rgba(168,110,67,.16); }
.order-notice strong { color:#f4d9b7; font-family:"Playfair Display",serif; font-size:22px; }
.order-notice span { color:rgba(255,255,255,.82); line-height:1.6; }
.deposit-policy { margin-top:16px; border:1px solid rgba(244,217,183,.3); border-radius:18px; padding:20px; display:grid; gap:7px; background:rgba(255,255,255,.07); }
.deposit-policy strong { color:#f4d9b7; font-family:"Playfair Display",serif; font-size:20px; }
.deposit-policy span { color:rgba(255,255,255,.82); line-height:1.6; }
.contact-card { margin-top:16px; border:1px solid rgba(255,255,255,.18); border-radius:18px; padding:20px; display:grid; gap:10px; background:rgba(255,255,255,.05); }
.contact-card a { color:#f4d9b7; text-decoration:underline; text-underline-offset:3px; }
.contact-card a:hover { color:white; }
.contact-card span { color:rgba(255,255,255,.68); font-size:14px; }
.order-form { background:var(--paper); color:var(--espresso); border-radius:24px; padding:30px; box-shadow:var(--shadow); }
.order-form label { display:grid; gap:8px; font-weight:700; font-size:14px; margin-bottom:17px; }
.order-form input,.order-form textarea,.order-form select { width:100%; border:1px solid #dbcbbd; border-radius:12px; background:white; padding:13px 14px; color:var(--espresso); outline:none; }
.order-form input:focus,.order-form textarea:focus,.order-form select:focus { border-color:var(--toast); box-shadow:0 0 0 3px rgba(168,110,67,.12); }
.label-note { font-weight:500; color:var(--muted); }
.form-help { color:var(--muted); font-size:12px; font-weight:500; }
.form-confirmation { padding:14px 16px; border-radius:12px; background:#f3e5d2; color:var(--brown); font-size:13px; line-height:1.55; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.full { width:100%; border:0; }
.hidden { display:none; }
.order-cta-card { align-self:center; background:var(--paper); color:var(--espresso); border-radius:24px; padding:34px; box-shadow:var(--shadow); }
.order-cta-card h3 { font-size:34px; margin-bottom:12px; }
.order-cta-card > p:not(.eyebrow) { color:var(--muted); line-height:1.7; }
.order-cta-card .btn { margin-top:12px; }
.order-cta-card .share-note { margin:14px 0 0; font-size:13px; text-align:center; }
.order-page { background:var(--cream); }
.order-page-hero { padding:76px clamp(24px,7vw,100px); background:linear-gradient(105deg,rgba(36,21,15,.98),rgba(74,47,32,.94)); color:white; }
.order-page-hero h1 { max-width:860px; margin-bottom:20px; }
.order-page-hero > p:last-child { max-width:760px; margin:0; color:rgba(255,255,255,.8); font-size:18px; line-height:1.7; }
.order-page-main { display:grid; grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr); gap:42px; align-items:start; padding:70px clamp(24px,7vw,100px) 90px; }
.order-sidebar { display:grid; gap:16px; }
.order-info-card,.payment-methods { padding:24px; border-radius:18px; background:var(--paper); border:1px solid rgba(74,47,32,.12); box-shadow:0 8px 28px rgba(50,28,16,.05); }
.order-info-card h2,.payment-methods h2 { font-size:30px; margin-bottom:14px; }
.order-info-card p,.payment-methods p { color:var(--muted); line-height:1.65; }
.order-sidebar .order-notice,.order-sidebar .deposit-policy { margin-top:0; background:var(--brown); border-color:rgba(255,255,255,.12); }
.order-sidebar .contact-card { margin-top:0; background:var(--espresso); }
.payment-methods ul { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:16px 0; list-style:none; }
.payment-methods li { padding:9px 13px; border-radius:999px; background:#f3e5d2; color:var(--brown); font-weight:700; }
.order-page-form { padding:34px; }
.form-section-heading { margin-bottom:24px; }
.form-section-heading h2 { font-size:38px; margin-bottom:0; }
.product-selector { margin:0 0 20px; padding:20px; border:1px solid #dbcbbd; border-radius:16px; }
.product-selector legend { padding:0 8px; font-family:"Playfair Display",serif; font-size:24px; font-weight:700; }
.product-selector > .form-help { display:block; margin:0 0 14px; line-height:1.5; }
.product-choice { display:grid; grid-template-columns:minmax(0,1fr) 78px; gap:14px; align-items:center; padding:13px 0; border-top:1px solid rgba(74,47,32,.1); }
.product-check { display:flex !important; grid-template-columns:none !important; align-items:flex-start; gap:11px !important; margin:0 !important; cursor:pointer; }
.product-check input { width:auto; margin-top:4px; flex:0 0 auto; }
.product-check span { display:grid; gap:3px; }
.product-check small { color:var(--toast); font-weight:700; line-height:1.45; }
.product-quantity { margin:0 !important; gap:4px !important; color:var(--muted); font-size:12px !important; }
.product-quantity input { padding:9px 8px; text-align:center; }
footer { padding:48px clamp(24px,7vw,100px); background:#160c08; color:rgba(255,255,255,.76); display:grid; gap:10px; justify-items:start; }
.footer-brand { background:var(--cream); border-radius:14px; padding:7px 12px; }
.brand-sticker-footer { width:144px; height:192px; }
.brand-sticker-confirmation { width:150px; height:200px; }
footer p { margin:0; }
footer .small { font-size:13px; color:rgba(255,255,255,.48); }
.footer-links { display:flex; flex-wrap:wrap; gap:10px 18px; font-size:14px; }
.footer-links a { color:#f4d9b7; text-decoration:underline; text-underline-offset:3px; }
.allergen-note { max-width:920px; }
.seasonal-note { font-weight:700; color:var(--brown); }
.cottage-disclosure { max-width:760px; margin-top:12px; padding:16px 18px; border:1px solid rgba(244,217,183,.25); border-radius:14px; background:rgba(255,255,255,.05); }
.cottage-disclosure strong { display:block; margin-bottom:5px; color:#f4d9b7; }
.cottage-disclosure p { font-size:14px; line-height:1.6; color:rgba(255,255,255,.78); }

@media (max-width: 850px) {
  .nav-toggle { display:block; }
  .site-nav { display:none; position:absolute; top:72px; left:16px; right:16px; padding:14px; border-radius:16px; flex-direction:column; align-items:stretch; background:var(--paper); box-shadow:var(--shadow); }
  .site-nav.open { display:flex; }
  .site-nav a { padding:11px 8px; }
  .intro,.story,.tiktok-section,.order-section { grid-template-columns:1fr; }
  .feature-strip { grid-template-columns:1fr; }
  .feature-strip article { min-height:290px; }
  .story-image { max-height:460px; overflow:hidden; }
  .menu-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid figure.wide { grid-column:span 2; }
  .order-page-main { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .brand-sticker-header { width:56px; height:56px; }
  .hero { min-height:78vh; }
  .hero-content { padding-bottom:60px; }
  .section-pad,.order-section { padding-top:66px; padding-bottom:66px; }
  .form-row,.gallery-grid { grid-template-columns:1fr; }
  .gallery-grid figure.wide { grid-column:span 1; }
  .gallery-grid figure { min-height:280px; }
  .menu-card { flex-direction:column; }
  .menu-card strong { text-align:left; }
  .order-page-hero { padding-top:58px; padding-bottom:58px; }
  .order-page-main { padding-top:48px; padding-bottom:64px; }
  .order-page-form { padding:24px 18px; }
  .product-selector { padding:16px 14px; }
  .product-choice { grid-template-columns:minmax(0,1fr) 66px; gap:9px; }
  .tiktok-embed-panel { padding:12px; border-radius:18px; }
  .tiktok-fallback { flex-direction:column; align-items:flex-start; padding:16px 4px 4px; }
}
