/* ============================================================
   CORPORATE — office catering, for the whole group
   Built on the tokens in style.css. The one loud thing on the
   page is the office week: each brand sits at the hour of the
   working day it is for. Everything around it stays quiet.
============================================================ */

.c-wrap { background:var(--bg); }

/* ─── HERO ─── */
.c-hero {
  display:grid; grid-template-columns:1.05fr .95fr;
  align-items:stretch; border-bottom:1px solid var(--border);
}
.c-hero-copy {
  padding:112px 56px 84px; display:flex; flex-direction:column; justify-content:center;
}
.c-hero h1 {
  font-family:'Playfair Display',serif; font-size:clamp(2.7rem,5.2vw,4.8rem);
  font-weight:900; line-height:1; letter-spacing:-.03em; color:var(--ink); margin:0;
  max-width:12ch;
}
.c-lede {
  font-size:1.02rem; font-weight:300; line-height:1.85; color:var(--ink2);
  max-width:46ch; margin:28px 0 0;
}
.c-cta { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.c-facts {
  display:flex; gap:34px; flex-wrap:wrap;
  margin-top:42px; padding-top:26px; border-top:1px solid var(--border);
}
.c-facts div { display:flex; flex-direction:column; gap:6px; }
.c-fn {
  font-family:'Playfair Display',serif; font-size:1.7rem; font-weight:900;
  line-height:1; color:var(--ink); letter-spacing:-.02em;
}
.c-fl { font-size:.8rem; color:var(--ink3); max-width:18ch; line-height:1.45; }
.c-hero-img { position:relative; overflow:hidden; min-height:420px; background:var(--bg3); }
.c-hero-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* ─── SECTION HEADS ─── */
.c-head { max-width:1180px; margin:0 auto 44px; }
.c-head .stitle { max-width:18ch; }
.c-head p { font-size:.98rem; font-weight:300; line-height:1.85; color:var(--ink2); max-width:60ch; }

/* ─── THE OFFICE WEEK ─── */
/* A timetable, not a card grid: rows are the hours of an office day, columns
   are the days, and a brand's block spans the days it would turn up. The
   brand colours appear here and nowhere else on the page. */
.c-week-sec { background:var(--bg2); border-bottom:1px solid var(--border); }
.c-week {
  display:grid;
  grid-template-columns:118px repeat(5, minmax(0,1fr));
  grid-template-rows:auto repeat(3, minmax(112px,auto));
  column-gap:10px; row-gap:10px;
  max-width:1180px; margin:0 auto;
}
.c-day {
  font-family:'Syne',sans-serif; font-size:.72rem; font-weight:700; letter-spacing:.08em;
  color:var(--ink3); padding:0 2px 8px; border-bottom:1px solid var(--border);
}
.c-hour {
  grid-column:1; display:flex; flex-direction:column; justify-content:center; gap:4px;
  padding-right:10px; border-right:1px solid var(--border);
}
.c-hour b {
  font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:900;
  color:var(--ink); letter-spacing:-.02em; line-height:1;
}
.c-hour span { font-size:.78rem; color:var(--ink3); }

.c-slot {
  --b:var(--ink);
  position:relative; background:var(--bg); border-left:4px solid var(--b);
  padding:16px 18px 16px 16px; display:flex; flex-direction:column; justify-content:center;
  min-width:0;
}
.c-slot h3 {
  font-family:'Playfair Display',serif; font-size:1.12rem; font-weight:700;
  line-height:1.2; color:var(--ink); margin:0 0 4px;
}
.c-slot p { font-size:.84rem; line-height:1.55; color:var(--ink2); margin:0; }
.c-slot a {
  margin-top:8px; font-size:.78rem; font-weight:500; color:var(--ink3);
  text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(28,25,22,.25);
  align-self:flex-start;
}
.c-slot a:hover { color:var(--ink); text-decoration-color:currentColor; }
.c-slot-nc   { --b:#D32F2F; }
.c-slot-mcbc { --b:#0090AD; }
.c-slot-tr   { --b:#E0BF00; }   /* Tadka Rani yellow, deepened to read as a rule on white */
.c-slot-is   { --b:#B0301B; }
.c-empty { border-left:1px dashed var(--border); }
.c-week-note { font-size:.82rem; color:var(--ink3); max-width:1180px; margin:18px auto 0; }

/* ─── WAYS TO START ─── */
/* A ruled list: what it is on the left, what you get on the right. */
.c-ways { max-width:1180px; margin:0 auto; border-top:1px solid var(--ink); }
.c-way {
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr) minmax(0,.7fr);
  gap:36px; padding:34px 0; border-bottom:1px solid var(--border);
}
.c-way h3 {
  font-family:'Playfair Display',serif; font-size:clamp(1.4rem,2.4vw,1.9rem);
  font-weight:900; line-height:1.1; letter-spacing:-.02em; color:var(--ink); margin:0 0 8px;
}
.c-way-for { font-size:.86rem; color:var(--ink3); line-height:1.5; }
.c-way p { font-size:.95rem; font-weight:300; line-height:1.8; color:var(--ink2); margin:0 0 12px; }
.c-way ul { display:flex; flex-direction:column; gap:6px; }
.c-way li {
  font-size:.88rem; line-height:1.55; color:var(--ink2); padding-left:16px; position:relative;
}
.c-way li::before {
  content:''; position:absolute; left:0; top:.62em; width:6px; height:1px; background:var(--saffron);
}
.c-way-price { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.c-way-price strong {
  font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:700; color:var(--ink); line-height:1.25;
}
.c-way-price span { font-size:.8rem; color:var(--ink3); line-height:1.5; }

/* ─── HOW IT WORKS ─── */
/* A real sequence, so it is numbered. */
.c-steps {
  list-style:none; counter-reset:step; max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:0;
  border-top:1px solid var(--border);
}
.c-steps li {
  counter-increment:step; padding:26px 26px 6px 0; margin-right:26px;
  border-right:1px solid var(--border);
}
.c-steps li:last-child { border-right:none; margin-right:0; }
.c-steps li::before {
  content:counter(step); display:block;
  font-family:'Playfair Display',serif; font-size:2.4rem; font-weight:900; line-height:1;
  color:var(--saffron); margin-bottom:14px;
}
.c-steps h3 { font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:600; color:var(--ink); margin:0 0 6px; }
.c-steps p  { font-size:.88rem; font-weight:300; line-height:1.7; color:var(--ink2); margin:0; }

/* ─── FAQ ─── */
.c-faq { max-width:1180px; margin:0 auto; }
.c-faq details { max-width:820px; border-bottom:1px solid var(--border); }
.c-faq details:first-child { border-top:1px solid var(--border); }
.c-faq summary {
  list-style:none; cursor:pointer; padding:20px 36px 20px 0; position:relative;
  font-size:1.02rem; font-weight:500; color:var(--ink);
}
.c-faq summary::-webkit-details-marker { display:none; }
.c-faq summary::after {
  content:''; position:absolute; right:6px; top:50%; width:9px; height:9px; margin-top:-7px;
  border-right:1.5px solid var(--ink3); border-bottom:1.5px solid var(--ink3);
  transform:rotate(45deg); transition:transform .25s;
}
.c-faq details[open] summary::after { transform:rotate(225deg); margin-top:-2px; }
.c-faq summary:focus-visible { outline:2px solid var(--saffron); outline-offset:4px; }
.c-faq details p {
  font-size:.94rem; font-weight:300; line-height:1.85; color:var(--ink2);
  padding:0 0 22px; max-width:68ch; margin:0;
}

/* ─── WHY US ─── */
.c-pillars {
  list-style:none; counter-reset:pillar; max-width:1180px; margin:0 auto; padding:0;
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:0;
  border-top:1px solid var(--ink);
}
.c-pillars li { padding:26px 26px 6px 0; margin-right:26px; border-right:1px solid var(--border); }
.c-pillars li:last-child { border-right:none; margin-right:0; }
.c-pillars h3 {
  font-family:'Playfair Display',serif; font-size:1.2rem; font-weight:700; line-height:1.25;
  color:var(--ink); margin:0 0 10px;
}
.c-pillars p { font-size:.9rem; font-weight:300; line-height:1.75; color:var(--ink2); margin:0; }
.c-pillars a { display:block; margin-top:10px; font-size:.82rem; font-weight:500; color:var(--ink3);
  text-decoration:underline; text-underline-offset:3px; }
.c-pillars a:hover { color:var(--ink); }

.c-optin { display:flex; gap:10px; align-items:flex-start; font-size:.84rem; color:rgba(255,255,255,.72); cursor:pointer; }
.c-optin input { width:18px; height:18px; margin:1px 0 0; accent-color:var(--turmeric); flex:none; cursor:pointer; }

/* ─── DELIVERY RANGE ─── */
.c-range-sec { background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.c-range {
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:56px; align-items:end;
}
.c-range .c-head { margin:0; }
.c-kitchens { list-style:none; margin:0 0 22px; padding:0; border-top:1px solid var(--ink); }
.c-kitchens li {
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:14px 0; border-bottom:1px solid var(--border);
}
.c-kitchens b { font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:700; color:var(--ink); }
.c-kitchens span { font-size:.8rem; color:var(--ink3); }
.c-kitchens li.near b::after { content:' \2713'; color:var(--saffron); }
.c-range-out { font-size:.86rem; line-height:1.65; color:var(--ink3); margin:14px 0 0; max-width:48ch; }
.c-range-out.yes { color:var(--ink); }
.c-range-out.yes strong { color:var(--saffron); }

/* ─── QUOTE FORM ─── */
.c-form-sec {
  position:relative; overflow:hidden; background:var(--bgdark); color:#fff; padding:72px 56px;
}
.c-form-in {
  position:relative; z-index:1; max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; align-items:start;
}
.c-form-sec .ey { color:var(--turmeric); }
.c-form-sec .ey::before { background:var(--turmeric); }
.c-form-sec h2 {
  font-family:'Playfair Display',serif; font-size:clamp(2rem,4vw,3.1rem);
  font-weight:900; line-height:1.06; letter-spacing:-.02em; margin:0 0 20px; max-width:14ch;
}
.c-form-aside p { font-size:.95rem; font-weight:300; line-height:1.85; color:rgba(255,255,255,.66); margin:0 0 16px; max-width:44ch; }
.c-form-aside a.c-tel {
  display:inline-block; margin-top:14px; font-family:'Playfair Display',serif; font-size:1.6rem; font-weight:700;
  color:#fff; border-bottom:1px solid rgba(255,255,255,.28); padding-bottom:4px;
}
.c-form-aside a.c-tel:hover { color:var(--turmeric); border-color:var(--turmeric); }
.c-form-aside small { display:block; margin-top:10px; font-size:.8rem; color:rgba(255,255,255,.45); }

.c-form { display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
.c-field { display:flex; flex-direction:column; gap:5px; min-width:0; }
.c-field.c-wide { grid-column:1 / -1; }
.c-field label { font-size:.82rem; font-weight:500; color:rgba(255,255,255,.82); }
.c-field label i { font-style:normal; color:rgba(255,255,255,.4); font-weight:400; }
.c-field input, .c-field select, .c-field textarea {
  width:100%; font-family:'DM Sans',sans-serif; font-size:1rem; color:#fff;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:2px;
  padding:10px 12px; transition:border-color .2s, background .2s; cursor:text;
}
.c-field select { cursor:pointer; appearance:none; -webkit-appearance:none;
  background-image:linear-gradient(45deg, transparent 50%, rgba(255,255,255,.6) 50%), linear-gradient(135deg, rgba(255,255,255,.6) 50%, transparent 50%);
  background-position:calc(100% - 18px) 52%, calc(100% - 13px) 52%;
  background-size:5px 5px; background-repeat:no-repeat; padding-right:36px; }
.c-field select option { color:var(--ink); }
.c-field input, .c-field select { height:44px; }   /* the date input is taller by default */
.c-field textarea { min-height:64px; resize:vertical; }
.c-field input::placeholder, .c-field textarea::placeholder { color:rgba(255,255,255,.32); }
.c-field input:focus, .c-field select:focus, .c-field textarea:focus {
  outline:none; border-color:var(--turmeric); background:rgba(255,255,255,.09);
}
.c-field input[type="date"] { color-scheme:dark; }
.c-err { display:none; font-size:.78rem; color:#F2A38F; }
.c-field.bad input, .c-field.bad select, .c-field.bad textarea { border-color:#F2A38F; }
.c-field.bad .c-err { display:block; }
.c-hp { position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden; }
.c-form-foot { grid-column:1 / -1; display:flex; flex-direction:column; gap:12px; align-items:flex-start; margin-top:2px; }
.c-form-foot .btn { cursor:pointer; }
.c-form-foot .btn[disabled] { opacity:.6; cursor:progress; }
.c-note { font-size:.8rem; color:rgba(255,255,255,.45); line-height:1.6; max-width:60ch; }
.c-summary { display:none; font-size:.86rem; color:#F2A38F; }
.c-summary.on { display:block; }

.c-done { display:none; grid-column:1 / -1; border-left:3px solid var(--turmeric); padding:6px 0 6px 22px; }
.c-done h3 { font-family:'Playfair Display',serif; font-size:1.9rem; font-weight:900; margin:0 0 10px; }
.c-done p  { font-size:.95rem; font-weight:300; line-height:1.8; color:rgba(255,255,255,.7); margin:0 0 16px; max-width:52ch; }
.c-done .btn { cursor:pointer; }
.c-form.sent > :not(.c-done) { display:none; }
.c-form.sent .c-done { display:block; }
.c-done-wa { display:none; }
.c-form.sent-unconfirmed .c-done-wa { display:block; }

/* Keyboard focus that can be seen, on both bands. */
.c-wrap a:focus-visible, .c-wrap .btn:focus-visible { outline:2px solid var(--saffron); outline-offset:3px; }

/* ─── RESPONSIVE ─── */
@media (max-width:1100px) {
  .c-hero       { grid-template-columns:1fr; }
  .c-hero-copy  { padding:108px 30px 56px; }
  .c-hero-img   { min-height:320px; }
  .c-way        { grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); }
  .c-way-price  { grid-column:2; }
  .c-form-sec   { padding:80px 30px; }
  .c-form-in    { grid-template-columns:1fr; gap:40px; }
}

/* Below this the timetable stops being a grid and becomes the day, read top
   to bottom: each hour once, with the brand under it and the days it runs. */
@media (max-width:900px) {
  .c-range { grid-template-columns:1fr; gap:32px; }
  .c-pillars { grid-template-columns:1fr 1fr; }
  .c-pillars li:nth-child(2n) { border-right:none; margin-right:0; }
  .c-week { display:flex; flex-direction:column; gap:0; }
  .c-day, .c-empty { display:none; }
  .c-hour {
    border-right:none; border-top:1px solid var(--ink); padding:18px 0 10px;
    flex-direction:row; justify-content:flex-start; align-items:baseline; gap:12px;
  }
  .c-hour:first-of-type { border-top:none; }
  .c-slot { margin-bottom:10px; }
  .c-slot[data-days]::before {
    content:attr(data-days); font-family:'Syne',sans-serif; font-size:.66rem; font-weight:700;
    letter-spacing:.08em; color:var(--ink3); margin-bottom:6px;
  }
  .c-steps { grid-template-columns:1fr 1fr; }
  .c-steps li:nth-child(2) { border-right:none; margin-right:0; }
}

@media (max-width:640px) {
  .c-hero-copy { padding:96px 16px 48px; }
  .c-facts     { gap:22px; }
  .c-way       { grid-template-columns:1fr; gap:14px; padding:28px 0; }
  .c-way-price { grid-column:auto; }
  .c-steps     { grid-template-columns:1fr; }
  .c-steps li  { border-right:none; margin-right:0; padding-right:0; border-bottom:1px solid var(--border); padding-bottom:20px; }
  .c-steps li:last-child { border-bottom:none; }
  .c-pillars   { grid-template-columns:1fr; }
  .c-pillars li { border-right:none; margin-right:0; padding-right:0; border-bottom:1px solid var(--border); padding-bottom:20px; }
  .c-pillars li:last-child { border-bottom:none; }
  .c-form-sec  { padding:56px 16px; }
  .c-field     { grid-column:1 / -1; }
  .c-field.c-pair { grid-column:auto; }   /* People and Date share a row */
  .c-wrap .sec { padding-left:16px; padding-right:16px; }
}

@media (prefers-reduced-motion:reduce) {
  .c-faq summary::after { transition:none; }
}
