/* Chittagong Kitchen — editorial hospitality design.
   Ivory, oxblood, restrained gold rule. No rounded cards, no shadows,
   no gradients, no floating panels. Type does the work. */
:root{
  --ivory:#FBF7EE; --ivory-2:#F3EBD8; --paper:#FFFDF7;
  --ink:#2A1D1A; --ink-soft:#5C4A42; --muted:#6B5A50; /* 6.13:1 on ivory, 6.44:1 on paper — passes WCAG AA normal text */
  --oxblood:#6E1F1F; --oxblood-2:#8A3324; --gold:#B9975B;
  --line:#DDCDB4; --line-strong:#C4A87E;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:min(1120px,calc(100% - 48px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--oxblood);text-underline-offset:3px}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--oxblood);outline-offset:3px}
html{scroll-padding-top:100px}
section[id],h2[id]{scroll-margin-top:100px}
#delivery-fields.delivery-grid:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:18px}
img{display:block;max-width:100%;height:auto}
.wrap{width:var(--wrap);margin-inline:auto}
.skip{position:absolute;left:-9999px;top:0;background:var(--oxblood);color:var(--ivory);padding:10px 16px;z-index:50}
.skip:focus{left:12px;top:12px}
/* Eyebrow / headings */
.kicker{font-family:var(--sans);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--oxblood);font-weight:700;margin:0 0 14px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.12;margin:0}
h1{font-size:clamp(2.6rem,6vw,4.4rem)}
h2{font-size:clamp(2rem,4.2vw,3.1rem)}
h3{font-size:1.55rem}
.lede{font-size:1.18rem;color:var(--ink-soft);max-width:62ch}
.rule{border:0;border-top:1px solid var(--line-strong);width:64px;margin:22px 0}
section{padding:84px 0}
section + section{border-top:1px solid var(--line)}
.band{background:var(--oxblood);color:var(--ivory)}
.band .kicker,.band h2{color:var(--ivory)}
.band .lede{color:#EBD9B8}
/* Header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(251,247,238,.96);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0}
.brand img{height:56px;width:auto}
.brand{color:var(--oxblood);text-decoration:none;font-family:var(--serif);font-weight:600;font-size:1.5rem}
.main-nav{display:flex;gap:28px;align-items:center}
.main-nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem}
.main-nav a[aria-current="page"]{color:var(--oxblood);border-bottom:2px solid var(--oxblood);padding-bottom:2px}
.main-nav a.order-link{color:var(--oxblood)}
.nav-toggle{display:none;background:none;border:1px solid var(--line-strong);color:var(--ink);padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}
/* Hero — editorial split, text beside a tall photograph */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:72px 0 84px}
.hero-copy .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.hero-figure{margin:0}
.hero-figure img{width:100%;aspect-ratio:3/4;object-fit:cover}
.hero-figure figcaption{font-size:.85rem;color:var(--muted);margin-top:10px}
/* Hero slideshow — one 3/4 frame, slides crossfade in place, never stretch */
.hero-slideshow{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden}
.hero-slideshow img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;opacity:0;transition:opacity .8s ease}
.hero-slideshow img.active{opacity:1}
.hero-controls{display:flex;align-items:center;gap:10px;margin-top:12px}
.hero-arrow{border:1px solid var(--line-strong);background:transparent;color:var(--ink);padding:8px 14px;font:inherit;font-weight:700;cursor:pointer}
.hero-arrow:hover{background:var(--oxblood);border-color:var(--oxblood);color:var(--ivory)}
.hero-dots{display:flex;gap:8px;margin-left:6px}
/* Visual dot stays 12px; padding brings the hit target to 26px (WCAG 2.2 AA 24px minimum). */
.hero-dot{width:12px;height:12px;padding:6px;border:1px solid var(--oxblood);background:transparent;background-clip:content-box;box-sizing:content-box;cursor:pointer}
.hero-dot.active{background:var(--oxblood)}
@media (prefers-reduced-motion:reduce){
  .hero-slideshow img{transition:none}
}
.hero-note{font-size:.9rem;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:16px;margin-top:28px}
/* Buttons — flat, square, quiet */
.btn{display:inline-block;text-decoration:none;border:1px solid var(--oxblood);background:var(--oxblood);color:var(--ivory);padding:14px 22px;font-weight:700;font-size:.92rem;letter-spacing:.02em;cursor:pointer;text-align:center}
.btn:hover{background:var(--oxblood-2);border-color:var(--oxblood-2)}
.btn.outline{background:transparent;color:var(--oxblood)}
.btn.outline:hover{background:var(--oxblood);color:var(--ivory)}
.btn.text{border:0;background:none;color:var(--oxblood);padding:14px 4px;text-decoration:underline}
/* Two-column intro */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.split figure{margin:0}
.split figure img{aspect-ratio:4/3;object-fit:cover;width:100%}
/* Signature dishes — editorial list, not a card grid */
.sig-list{margin:56px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.sig-item{display:grid;grid-template-columns:220px 1fr auto;gap:32px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}
.sig-item img{width:220px;height:150px;object-fit:cover}
.sig-item h3{margin-bottom:6px}
.sig-item p{margin:0;color:var(--ink-soft);max-width:52ch}
.sig-item .sig-link{white-space:nowrap;font-weight:700}
/* Catering teaser / service rows */
.service-rows{margin-top:44px}
.service-row{display:grid;grid-template-columns:200px 1fr;gap:32px;padding:26px 0;border-top:1px solid var(--line)}
.service-row:last-child{border-bottom:1px solid var(--line)}
.service-row h3{font-size:1.35rem}
/* Gallery — one uniform template: every photo in the same 4:3 frame,
   cropped from the centre, never stretched, rows always aligned.
   Old wide/tall classes are neutralised so no figure can break the grid. */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center}
.gallery .tall,.gallery .wide{grid-row:auto;grid-column:auto}
.gallery figcaption{font-size:.82rem;color:var(--muted);margin-top:8px}
/* Testimonials */
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:44px;border-top:1px solid var(--line-strong)}
.quotes blockquote{margin:0;padding:30px 32px 30px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-weight:500;font-size:1.3rem;line-height:1.5}
.quotes blockquote:nth-child(odd){padding-right:32px;border-right:1px solid var(--line)}
.quotes blockquote:nth-child(even){padding-left:32px}
.quotes footer{font-family:var(--sans);font-size:.88rem;color:var(--muted);margin-top:14px}
.quotes footer strong{color:var(--ink)}
.testi-note{font-size:.9rem;color:var(--muted);margin-top:22px}
/* Menu page */
.menu-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0 8px}
.menu-tab{border:1px solid var(--line-strong);background:transparent;color:var(--ink);padding:12px 18px;font:inherit;font-weight:700;cursor:pointer}
.menu-tab[aria-selected="true"]{background:var(--oxblood);border-color:var(--oxblood);color:var(--ivory)}
.menu-sub{margin-top:44px}
.menu-sub h3{padding-bottom:10px;border-bottom:1px solid var(--line-strong);margin-bottom:4px}
.menu-list{list-style:none;margin:0;padding:0}
.menu-item{display:grid;grid-template-columns:1fr auto;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}
.menu-item h4{font-family:var(--serif);font-size:1.35rem;font-weight:600;margin:0 0 4px}
.menu-item p{margin:0;color:var(--ink-soft);max-width:64ch;font-size:.98rem}
.menu-item .price{font-weight:700;white-space:nowrap;text-align:right}
.menu-controls{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}
.menu-controls label{font-size:.88rem;font-weight:600}
.menu-controls select,.menu-controls input[type="number"]{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);padding:9px 10px;font:inherit}
.menu-controls input[type="number"]{width:64px}
.add-btn{border:1px solid var(--oxblood);background:transparent;color:var(--oxblood);padding:10px 16px;font:inherit;font-weight:700;cursor:pointer}
.add-btn:hover{background:var(--oxblood);color:var(--ivory)}
.added-note{font-size:.88rem;color:var(--oxblood);font-weight:700}
/* Order section */
.order-panel{background:var(--paper);border:1px solid var(--line);padding:32px;margin-top:16px}
.cart-list{list-style:none;margin:0;padding:0}
.cart-row{display:grid;grid-template-columns:1fr auto;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.cart-row strong{font-family:var(--serif);font-size:1.2rem;font-weight:600}
.cart-row small{display:block;color:var(--muted)}
.cart-actions{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.cart-actions button{border:1px solid var(--line-strong);background:transparent;color:var(--ink);padding:7px 12px;font:inherit;cursor:pointer}
.cart-actions button.remove{color:var(--oxblood);border-color:var(--oxblood)}
.cart-total{display:flex;justify-content:space-between;font-weight:700;font-size:1.15rem;padding:20px 0;border-bottom:1px solid var(--line-strong)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
.form-grid label{display:block;font-weight:600;font-size:.92rem}
.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:1px solid var(--line-strong);background:#fff;color:var(--ink);padding:12px;font:inherit;margin-top:6px}
.form-grid .full{grid-column:1 / -1}
fieldset{border:0;padding:0;margin:0}
fieldset legend{font-weight:700;margin-bottom:8px}
.radio-row{display:flex;gap:20px}
.form-note{font-size:.92rem;color:var(--ink-soft)}
.form-message{border:1px solid var(--oxblood);background:var(--ivory-2);color:var(--oxblood);padding:16px;font-weight:700;margin-top:20px}
.form-message.error{border-color:#8a1f1f}
/* Story */
.story-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.story-hero img{aspect-ratio:1/1;object-fit:cover;width:100%}
/* Meet the Chef — editorial portrait and biography, no cards or badges */
.chef-layout{display:grid;grid-template-columns:360px 1fr;gap:56px;align-items:start}
.chef-portrait{margin:0}
.chef-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center}
.chef-role{font-weight:700;color:var(--oxblood);margin:0 0 10px}
.chef-headline{font-family:var(--serif);font-size:1.6rem;font-weight:500;font-style:italic;line-height:1.3;margin:0 0 22px}
.chef-bio p{margin:0 0 16px;color:var(--ink-soft);max-width:65ch}
.story-hero p{max-width:65ch}
.chef-bio h3{margin:30px 0 10px}
.chef-bio h3:first-of-type{margin-top:8px}
.chef-closing{font-family:var(--serif);font-weight:500;font-size:1.25rem;color:var(--ink)}
#chef-details{margin-top:26px}
#chef-details summary{font-weight:700;color:var(--oxblood);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
#chef-details summary::marker{color:var(--oxblood)}
@media (max-width:900px){
  .chef-layout{grid-template-columns:1fr;gap:32px}
  .chef-portrait{max-width:420px}
}
/* Footer */
.site-footer{border-top:1px solid var(--line-strong);padding:56px 0 40px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.site-footer h3{font-size:1.1rem;margin-bottom:12px}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:8px}
.site-footer .fine{color:var(--muted);font-size:.88rem;margin-top:36px;border-top:1px solid var(--line);padding-top:20px}
/* Reveal — subtle, and off entirely for reduced motion */
.reveal{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{transition:none !important;animation:none !important}
}

/* Refined homepage compositions — each section has its own layout,
   so no two sections repeat the same centred heading + card pattern. */
.menu-photo{margin:0 0 44px}
.menu-photo img{width:100%;aspect-ratio:16/9;object-fit:cover}
.menu-photo figcaption{font-size:.85rem;color:var(--muted);margin-top:10px}
.menu-index{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.menu-index ol{list-style:none;margin:0;padding:0;counter-reset:menu}
.menu-index li{counter-increment:menu;border-top:1px solid var(--line);padding:22px 0}
.menu-index li:last-child{border-bottom:1px solid var(--line)}
.menu-index li a{display:grid;grid-template-columns:44px 1fr;gap:18px;text-decoration:none;color:var(--ink)}
.menu-index li a::before{content:counter(menu,decimal-leading-zero);font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--oxblood)}
.menu-index li strong{display:block;font-family:var(--serif);font-size:1.45rem;font-weight:600;line-height:1.2}
.menu-index li span{color:var(--ink-soft)}
.catering-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.catering-split figure{margin:0}
.catering-split img{width:100%;aspect-ratio:4/3;object-fit:cover}
.catering-split figcaption{font-size:.85rem;color:var(--muted);margin-top:10px}
.exhibition-split{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start;margin-bottom:44px}
.exhibition-split figure{margin:0}
.exhibition-split img{width:100%;aspect-ratio:3/4;object-fit:cover}
.exhibition-split figcaption{font-size:.85rem;color:var(--muted);margin-top:10px}
.quotes-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.quotes-split .quotes{display:block;margin-top:0;border-top:1px solid var(--line-strong)}
.quotes-split blockquote{padding:28px 0;border-right:0 !important}
.quotes-split blockquote:nth-child(even){padding-left:0}


/* Podcast feature — editorial, not a three-card platform layout.
   Artwork is shown whole (object-fit: contain), never cropped or stretched. */
.podcast-feature{display:grid;grid-template-columns:420px 1fr;gap:56px;align-items:start}
.podcast-artwork{margin:0}
.podcast-artwork img{width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#fff;border:1px solid var(--line)}
.podcast-sub{font-weight:700;color:var(--oxblood);margin:0 0 16px}
.podcast-note{font-size:.92rem;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:16px;margin-top:22px}
.podcast-links{list-style:none;margin:28px 0 0;padding:0}
.podcast-links li{border-top:1px solid var(--line);padding:16px 0}
.podcast-links li:last-child{border-bottom:1px solid var(--line)}
.podcast-links a{font-weight:700;text-decoration:none}
.podcast-links a:hover{text-decoration:underline}
.podcast-link-note{display:block;font-size:.88rem;color:var(--muted);margin-top:4px}
.podcast-embed{margin-top:44px;max-width:720px}
.podcast-embed iframe{display:block;width:100%}
.podcast-embed-note{font-size:.88rem;color:var(--muted);margin-top:8px}


/* Press & Conversations — editorial entries separated by fine rules,
   not a grid of cards. The strongest feature leads, the podcast follows. */
.press-feature{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);padding:36px 0 32px;margin-top:44px}
.press-feature h3{font-size:clamp(1.9rem,3.6vw,2.7rem);max-width:28ch;margin:0 0 14px}
.press-feature p{max-width:65ch;color:var(--ink-soft)}
.press-source{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--oxblood);font-weight:700;margin:0 0 14px}
.press-entry{border-bottom:1px solid var(--line);padding:28px 0 24px}
.press-entry h3{font-size:clamp(1.45rem,2.6vw,1.9rem);max-width:32ch;margin:0 0 12px}
.press-entry p{max-width:65ch;color:var(--ink-soft)}
.press-link{font-weight:700;text-decoration:none}
.press-link:hover{text-decoration:underline}
#press .podcast-feature{margin-top:44px}


/* YRASP story photos — three tall collages shown whole, never cropped. */
.yrasp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}
.yrasp-grid figure{margin:0}
.yrasp-grid img{width:100%;height:auto}
.yrasp-grid figcaption{font-size:.82rem;color:var(--muted);margin-top:8px}

/* Responsive */
@media (max-width:900px){
  .hero,.split,.story-hero{grid-template-columns:1fr;gap:32px}
  .hero-figure img{aspect-ratio:4/3}
  .sig-item{grid-template-columns:120px 1fr;gap:20px}
  .sig-item img{width:120px;height:110px}
  .sig-item .sig-link{grid-column:2}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .quotes{grid-template-columns:1fr}
  .quotes blockquote{padding:24px 0}
  .quotes blockquote:nth-child(odd){padding-right:0;border-right:0}
  .quotes blockquote:nth-child(even){padding-left:0}
  .menu-index,.catering-split,.exhibition-split,.quotes-split,.podcast-feature{grid-template-columns:1fr;gap:32px}
  .yrasp-grid{grid-template-columns:1fr}
  .main-nav{gap:16px}
  .main-nav a{font-size:.88rem}
  .header-inner{gap:16px}
  #delivery-fields.delivery-grid{grid-template-columns:1fr}
  .podcast-artwork{max-width:420px}
  .footer-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
  body{font-size:16px}
  section{padding:56px 0}
  .nav-toggle{display:block}
  .main-nav{display:none;flex-direction:column;align-items:flex-start;position:absolute;left:0;right:0;top:100%;background:var(--ivory);border-bottom:1px solid var(--line);padding:16px 24px 22px;gap:16px}
  .main-nav.open{display:flex}
  .site-header{position:relative}
  .brand img{height:44px}
  .service-row{grid-template-columns:1fr;gap:8px}
  .menu-item{grid-template-columns:1fr}
  .menu-item .price{text-align:left}
  .order-panel{padding:20px}
}

/* Smallest phones: signature links may wrap instead of overflowing, and the
   event gallery drops to one column instead of cramped 128px cells. */
@media (max-width:400px){
  .sig-item{grid-template-columns:96px 1fr;gap:14px}
  .sig-item img{width:96px;height:88px}
  .sig-item .sig-link{white-space:normal}
  .gallery{grid-template-columns:1fr}
}

/* Catering page — hero split, large natural-proportion gallery, inquiry form */
.catering-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:start}
.catering-hero figure{margin:0}
.catering-hero img{width:100%;height:auto;display:block}
.catering-hero figcaption{font-size:.85rem;color:var(--muted);margin-top:10px}
.catering-hero .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.gallery-work{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px}
.gallery-work figure{margin:0}
.gallery-work img{width:100%;height:auto;display:block}
.gallery-work figcaption{font-size:.85rem;color:var(--muted);margin-top:10px}
.sample-menu{display:grid;grid-template-columns:1fr 1fr;gap:8px 40px;margin-top:36px}
.sample-menu h3{margin-bottom:6px}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin-top:6px}
.check-grid label,.check-label{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.check-grid input,.check-label input{width:auto;margin-top:4px;accent-color:var(--oxblood)}
.inquiry-panel{background:var(--paper)}
.inquiry-panel .form-grid label{font-weight:600}
.inquiry-panel fieldset{border:0;margin:0;padding:0}
.inquiry-panel legend{font-weight:600;font-size:.92rem}
.status-box{border:1px solid var(--line-strong);background:#fff;padding:16px 20px;margin-top:20px}
@media (max-width:900px){
  .catering-hero{grid-template-columns:1fr;gap:32px}
  .catering-hero figure{max-width:520px}
}
@media (max-width:700px){
  .gallery-work{grid-template-columns:1fr}
  .sample-menu{grid-template-columns:1fr}
  .check-grid{grid-template-columns:1fr}
  .inquiry-panel .form-grid{grid-template-columns:1fr}
  .catering-quotes{grid-template-columns:1fr}
  .catering-quotes blockquote:nth-child(odd){border-right:0;padding-right:0}
}
