:root{--ink:#3f1830;--muted:#755d68;--cream:#fffaf4;--paper:#fff;--saffron:#ffbd49;--chili:#852347;--leaf:#1d7454;--line:#ead5da;--shadow:0 22px 70px rgba(54,26,42,.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(1440px,calc(100% - 48px));margin-inline:auto}.top{background:var(--ink);color:#e9e3d6;padding:.55rem 1rem;text-align:center;font-size:.8rem}.top::first-line{color:#ffd28a}header{position:sticky;top:0;z-index:40;background:rgba(255,250,244,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(52,25,41,.08)}.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font:800 1.35rem Fraunces,Georgia,serif}.brand span{color:var(--chili)}.navlinks{display:flex;align-items:center;gap:22px;font-size:.87rem;font-weight:800}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.85rem 1.05rem;font-weight:900;border:1px solid transparent}.primary{background:var(--ink);color:#fff}.wa{background:#0e7a54;color:#fff}.outline{background:#fff;border-color:var(--line)}.hero{padding:78px 0;background:radial-gradient(circle at 90% 10%,rgba(255,189,73,.22),transparent 28%),linear-gradient(180deg,#fff6ec,#fff3e6)}.grid,.quote-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:46px;align-items:center}.tag{display:inline-flex;border:1px solid #ebd6ab;background:#fff0df;color:#6e2d43;padding:.48rem .7rem;border-radius:999px;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:900}.hero h1,.section h2{font-family:Fraunces,Georgia,serif;letter-spacing:-.045em;line-height:.98}.hero h1{font-size:clamp(3.3rem,7vw,6.3rem);margin:.9rem 0 1.1rem;max-width:11ch}.hero h1 em{font-style:normal;color:var(--chili)}.hero p,.lead{color:var(--muted);font-size:1.05rem}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-card,.card,.form,details{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 10px 34px rgba(60,29,47,.06)}.hero-card{padding:26px}.hero-card h3{font:800 1.5rem Fraunces,Georgia,serif;margin:0 0 .8rem}.hero-card ul{padding-left:1.1rem;color:#684853}.section{padding:82px 0}.section h2{font-size:clamp(2.2rem,5vw,4.1rem);margin:.8rem 0 1rem;max-width:14ch}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}.card{padding:22px}.card b{font-size:1.02rem}.card p{color:var(--muted);font-size:.88rem;margin:.45rem 0 0}.areas{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}.areas span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.45rem .6rem;font-size:.74rem;font-weight:850}.dark{background:linear-gradient(145deg,#57223f,#3f1830);color:#fff}.dark .lead{color:#dcd2bd}.form{padding:26px;color:var(--ink)}.form h3{font:800 1.65rem Fraunces,Georgia,serif;margin:0 0 .35rem}.form>p{color:var(--muted);margin-top:0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.76rem;font-weight:900;color:#5c4049}.field input,.field select,.field textarea{width:100%;border:1px solid #e0d7c5;border-radius:13px;padding:.8rem .85rem;background:#ffffff}.field textarea{min-height:95px;resize:vertical}.hidden{display:none}.faq{display:grid;gap:10px}.faq details{padding:17px 19px}.faq summary{font-weight:900;cursor:pointer}.faq p{color:var(--muted)}.footer{background:#2c1022;color:#c6b695;padding:40px 0 95px}.footer .row{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;font-size:.82rem}.footer a{color:#ddd3c0}.mobile{display:none}@media(max-width:850px){.grid,.quote-grid{grid-template-columns:1fr}.navlinks a:not(.btn){display:none}.cards{grid-template-columns:1fr}.hero{padding:52px 0}.fields{grid-template-columns:1fr}.field.full{grid-column:auto}}@media(max-width:600px){.container{width:min(100% - 26px,1440px)}.hero h1{font-size:clamp(3.4rem,16vw,4.8rem)}.navlinks{gap:7px}.navlinks .btn{font-size:.75rem;padding:.72rem .8rem}.actions .btn{width:100%}.mobile{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;padding:8px;gap:8px;border-top:1px solid var(--line)}}

.hero-image{border-radius:26px;overflow:hidden;margin-top:18px;height:310px}.hero-image img{width:100%;height:100%;object-fit:cover}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.list-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.pilllist{display:flex;flex-wrap:wrap;gap:7px}.pilllist span,.pilllist a{border:1px solid var(--line);border-radius:999px;background:#fff;padding:.42rem .56rem;font-size:.74rem;font-weight:800}.photo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:25px}.photo-row img{width:100%;height:190px;object-fit:cover;border-radius:18px}.menu-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.menu-group{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.menu-group h3{font:800 1.2rem Fraunces,Georgia,serif;margin:0 0 .6rem}.menu-group p{font-size:.82rem;color:var(--muted);line-height:1.7}.county-list{columns:3;column-gap:28px}.county-list section{break-inside:avoid;margin-bottom:18px}.county-list h3{margin:0 0 .35rem;font-size:1rem}.county-list p{color:var(--muted);font-size:.82rem}.notice{border-left:4px solid var(--saffron);background:#f9f5ec;padding:14px 16px;border-radius:10px;color:#726344}.form .checks{display:grid;grid-template-columns:1fr 1fr;gap:7px}.form .checks label{border:1px solid var(--line);border-radius:10px;padding:.55rem;font-size:.75rem}@media(max-width:850px){.split,.menu-groups{grid-template-columns:1fr}.county-list{columns:2}.photo-row{grid-template-columns:1fr 1fr}}@media(max-width:550px){.county-list{columns:1}.photo-row{grid-template-columns:1fr}.photo-row img{height:220px}.form .checks{grid-template-columns:1fr}}
.language-mark{display:inline-flex;flex-direction:column;gap:2px;margin:0 0 12px;padding:10px 13px;border-left:4px solid var(--saffron);background:#fff0df;border-radius:0 12px 12px 0}.language-mark strong{font:800 1.15rem Fraunces,Georgia,serif}.language-mark span{font-size:.7rem;color:#8e7b55;text-transform:uppercase;letter-spacing:.06em}.region-hero-photo{width:100%;height:230px;object-fit:cover;border-radius:18px;margin-bottom:18px}


/* Editorial & SEO content */
.breadcrumbs{font-size:.78rem;color:var(--muted);padding:18px 0 0}.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.article-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:42px;align-items:start}.article-body{background:#fff;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:0 10px 34px rgba(60,29,47,.05)}.article-body h2{font-size:clamp(1.75rem,3.4vw,2.65rem);max-width:none;margin:2.2rem 0 .8rem}.article-body h3{font:800 1.35rem Fraunces,Georgia,serif;margin:1.7rem 0 .55rem}.article-body p,.article-body li{color:#654650}.article-body ul,.article-body ol{padding-left:1.25rem}.article-body li{margin:.45rem 0}.article-body strong{color:var(--ink)}.article-body table{width:100%;border-collapse:collapse;margin:1.2rem 0 1.8rem;font-size:.88rem}.article-body th,.article-body td{text-align:left;padding:.75rem;border-bottom:1px solid var(--line);vertical-align:top}.article-body th{background:#f9f5ed;color:#5c2a3b}.article-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:.76rem;color:var(--muted);margin:.9rem 0 1.4rem}.toc{position:sticky;top:98px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px}.toc b{display:block;margin-bottom:.7rem}.toc a{display:block;padding:.38rem 0;color:#755d68;font-size:.84rem;border-bottom:1px solid #f1ebdf}.toc a:last-child{border:0}.seo-callout{background:#f7f1e5;border:1px solid #f0d59e;border-radius:18px;padding:18px 20px;margin:1.5rem 0}.seo-callout b{display:block;margin-bottom:.25rem}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:25px}.guide-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:21px;display:flex;flex-direction:column;gap:8px}.guide-card small{font-weight:900;color:#956f24;text-transform:uppercase;letter-spacing:.08em}.guide-card h3{font:800 1.25rem Fraunces,Georgia,serif;margin:0}.guide-card p{font-size:.84rem;color:var(--muted);margin:0}.guide-card a{font-size:.84rem;font-weight:900;color:var(--chili);margin-top:auto}.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.region-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.region-card h3{font:800 1.4rem Fraunces,Georgia,serif;margin:0 0 .6rem}.region-card p{font-size:.86rem;color:var(--muted)}.keyword-strip{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.keyword-strip a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.42rem .58rem;font-size:.73rem;font-weight:850}.related-guides{background:#fff6ec}.related-guides h2{max-width:none;font-size:clamp(2rem,4vw,3.2rem)}.article-hero{padding:58px 0 45px;background:radial-gradient(circle at 90% 10%,rgba(255,189,73,.18),transparent 28%),linear-gradient(180deg,#fff6ec,#fff3e6)}.article-hero h1{font:800 clamp(2.8rem,6vw,5.4rem)/.98 Fraunces,Georgia,serif;letter-spacing:-.045em;max-width:13ch;margin:.8rem 0 1rem}.article-hero p{max-width:70ch;color:var(--muted);font-size:1.08rem}.faq-block details{box-shadow:none;margin-bottom:8px}@media(max-width:900px){.article-shell{grid-template-columns:1fr}.toc{position:static}.guide-grid,.region-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.article-body{padding:22px}.guide-grid,.region-grid{grid-template-columns:1fr}.article-body table{display:block;overflow-x:auto;white-space:nowrap}}

/* ---------------------------------------------------------------------------
   ChefWaala logo
   The original chef's-hat monogram and script wordmark, used as-is. It is a
   raster with a transparent background, so on the ink surfaces the maroon
   script sits too close to the background — the filter lifts it rather than
   shipping a second file that can drift out of sync with the first.
--------------------------------------------------------------------------- */
.brand{display:inline-flex;align-items:center}
.cw-logo-img{display:block;height:52px;width:auto;max-width:100%;object-fit:contain}
.on-dark .cw-logo-img,.dark .cw-logo-img,.cw-ft .cw-logo-img,.brand-panel .cw-logo-img{filter:brightness(1.55) saturate(1.05)}
.cw-logo-xl{display:grid;justify-items:center;padding:6px 0 18px}
.cw-logo-xl .cw-logo-img{height:clamp(88px,13vw,132px)}
@media(max-width:600px){.cw-logo-img{height:42px}}

/* ---------------------------------------------------------------------------
   Price estimator
   Nobody in this category publishes a number. This one does — as a range, with
   the exclusions in plain sight, before the visitor gives up a phone number.
--------------------------------------------------------------------------- */
.cw-est{background:var(--paper,#fff);border:1px solid var(--line,#ead5da);border-radius:26px;padding:30px;box-shadow:0 18px 50px rgba(63,24,48,.07);margin:26px 0}
.cw-est-head{max-width:60ch;margin-bottom:24px}
.cw-est-kicker{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .7rem;border:1px solid #f0d8a8;background:#fff5e2;color:#8a6212;border-radius:999px;font:900 .72rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.cw-est-head h3{font:800 clamp(1.6rem,3vw,2.4rem)/1.05 Fraunces,Georgia,serif;letter-spacing:-.035em;margin:.7rem 0 .5rem;color:var(--ink,#3f1830)}
.cw-est-head p{color:var(--muted,#755d68);margin:0;font-size:.98rem}
.cw-est-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}

.cw-est-field{display:block;border:0;padding:0;margin:0 0 20px}
.cw-est-field legend,.cw-est-field>span{display:flex;justify-content:space-between;align-items:baseline;padding:0;font:900 .74rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#614d54;margin-bottom:.6rem;width:100%}
.cw-est-field>span b{font:800 1.15rem/1 Fraunces,Georgia,serif;letter-spacing:-.02em;color:var(--ink,#3f1830)}
.cw-est-field input[type=range]{width:100%;accent-color:var(--chili,#852347)}
.cw-est-field small{display:block;margin-top:.55rem;color:var(--muted,#755d68);font-size:.82rem}
.cw-est-opts{display:flex;flex-wrap:wrap;gap:7px}
.cw-est-opts button{border:1px solid var(--line,#ead5da);background:#fff;border-radius:999px;padding:.55rem .8rem;font:800 .82rem Inter,ui-sans-serif,system-ui,sans-serif;color:#53404b;cursor:pointer;transition:.15s ease}
.cw-est-opts button:hover{border-color:#c9b6bc}
.cw-est-opts button.on{background:var(--ink,#3f1830);border-color:var(--ink,#3f1830);color:#fff}
.cw-est-check{display:flex;gap:.6rem;align-items:flex-start;padding:.9rem 1rem;border:1px solid var(--line,#ead5da);border-radius:14px;background:#fbf8f9;font-size:.88rem;font-weight:700;color:#53404b;cursor:pointer}
.cw-est-check input{margin-top:.15rem;accent-color:var(--chili,#852347)}

.cw-est-out{background:linear-gradient(160deg,#4a1c36,#3f1830);color:#fff;border-radius:22px;padding:26px}
.cw-est-out-label{display:block;font:900 .72rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--saffron,#ffbd49)}
.cw-est-total{display:block;font:800 clamp(2.4rem,5.5vw,3.6rem)/1 Fraunces,Georgia,serif;letter-spacing:-.045em;margin:.5rem 0 .3rem}
.cw-est-per{display:block;color:#ead6dd;font-weight:700;font-size:.95rem}
.cw-est-note{display:block;margin-top:.4rem;color:#bea5ad;font-size:.8rem}
.cw-est-hall{margin-top:16px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.cw-est-hall span{display:block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#d2bac2}
.cw-est-hall b{display:block;font:800 1.5rem/1.2 Fraunces,Georgia,serif;color:var(--saffron,#ffbd49)}
.cw-est-hall small{display:block;color:#bea5ad;font-size:.78rem;margin-top:.25rem}
.cw-est-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0 4px}
.cw-est-cols b{display:block;font:900 .72rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--saffron,#ffbd49);margin-bottom:.5rem}
.cw-est-cols ul{margin:0;padding-left:1.05rem;color:#e6d2d9;font-size:.85rem}
.cw-est-cols li{margin:.3rem 0}
.cw-est-cta{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}
.cw-est-cta .btn{flex:1 1 auto}
.cw-est-cta .btn-dark{background:var(--saffron,#ffbd49);color:#251c0b}
.cw-est-fineprint{margin:16px 0 0;color:#b59ba4;font-size:.78rem;line-height:1.6}
.cw-est-fineprint em{color:#d9b3c0;font-style:normal}

@media(max-width:900px){.cw-est-grid{grid-template-columns:1fr}}
@media(max-width:560px){.cw-est{padding:20px;border-radius:20px}.cw-est-out{padding:20px}.cw-est-cols{grid-template-columns:1fr;gap:12px}}

/* ---------------------------------------------------------------------------
   The 60-minute quote promise
--------------------------------------------------------------------------- */
.cw-promise{display:inline-block;position:relative;line-height:1.5;padding:.6rem .95rem .6rem 1.85rem;border-radius:999px;background:#fff5e2;border:1px solid #f0d8a8;color:#7a560d;font:700 .84rem Inter,ui-sans-serif,system-ui,sans-serif}
.cw-promise::before{content:"";position:absolute;left:.85rem;top:.95rem;width:9px;height:9px;border-radius:50%;background:var(--leaf,#0e7a54);box-shadow:0 0 0 4px rgba(14,122,84,.16)}
.cw-promise b{font-weight:900;white-space:nowrap}
.dark .cw-promise,.cw-est-out .cw-promise{background:rgba(255,189,73,.12);border-color:rgba(255,189,73,.3);color:var(--saffron,#ffbd49)}
.cw-promise-band{background:var(--ink,#3f1830);color:#f0dde3;padding:.7rem 0;font-size:.86rem}
.cw-promise-band .container{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;text-align:center}
.cw-promise-band strong{color:var(--saffron,#ffbd49)}

/* --- compact lead form ---------------------------------------------------- */
.formbox .formgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.formbox .field.full{grid-column:1/-1}
.formbox .field label{display:flex;justify-content:space-between;align-items:baseline}
.formbox .field label b{font:800 .95rem/1 Fraunces,Georgia,serif;color:var(--ink,#3f1830)}
.formbox .field input[type=range]{accent-color:var(--chili,#852347);padding:0;border:0;background:none;height:34px}
.dishrow{margin:12px 0 4px}
.dishrow .block-label{display:block;font:900 .7rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#957f86;margin-bottom:.45rem}
.cw-more{margin:12px 0 4px;border:1px solid var(--line,#ead5da);border-radius:14px;background:#fbf8f9;box-shadow:none}
.cw-more summary{cursor:pointer;padding:.75rem .9rem;font:800 .86rem Inter,ui-sans-serif,system-ui,sans-serif;color:#53404b;display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.cw-more summary span{font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#957f86}
.cw-more[open] summary{border-bottom:1px solid var(--line,#ead5da)}
.cw-more .formgrid{padding:12px}
@media(max-width:560px){.formbox .formgrid{grid-template-columns:1fr}}

/* ---------------------------------------------------------------------------
   Shared footer — one markup on all 53 pages.
   Three stacked rows: brand + promises, then the four link columns across the
   full width, then legal. Squeezing all five into one row made the headings and
   the links wrap and left the columns ending at five different heights.
   Prefixed class names so no page's own inline stylesheet can override it.
--------------------------------------------------------------------------- */
.cw-ft{background:#2c1022;color:#c6b0b7;padding:56px 0 40px;font-size:.9rem}
.cw-ft a{color:#e6d4da;text-decoration:none}
.cw-ft a:hover{color:var(--saffron,#ffbd49)}

.cw-ft-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:start;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.08)}
.cw-ft-brand p{margin:16px 0 0;max-width:58ch;color:#b59ba4;line-height:1.65}
.cw-ft-cta{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.cw-ft-cta .btn{padding:.8rem 1.05rem;font-size:.86rem}
.cw-ft-cta .btn-dark{background:var(--saffron,#ffbd49);color:#251c0b}
.cw-ft-cta .btn-wa{background:var(--leaf,#0e7a54);color:#fff}

.cw-ft-promises{display:grid;gap:10px}
.cw-ft-promise{padding:.85rem 1rem;border-radius:14px;background:rgba(255,189,73,.08);border:1px solid rgba(255,189,73,.2)}
.cw-ft-promise b{display:block;color:var(--saffron,#ffbd49);font:900 .86rem/1.25 Inter,ui-sans-serif,system-ui,sans-serif;margin-bottom:.2rem}
.cw-ft-promise span{display:block;color:#c4abb3;font-size:.8rem;line-height:1.5}
.cw-ft-promise:first-child{background:rgba(255,189,73,.14);border-color:rgba(255,189,73,.34)}

.cw-ft-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding:34px 0 0}
.cw-ft-col h4{margin:0 0 .95rem;font:900 .7rem/1.3 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:var(--saffron,#ffbd49)}
.cw-ft-links{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}
.cw-ft-links li{margin:0}
.cw-ft-links a{font-size:.85rem;line-height:1.35}

.cw-ft-legal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px;margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);color:#967f87;font-size:.74rem;line-height:1.6}

.cw-ft-contact{display:flex;flex-wrap:wrap;gap:.4rem 1.15rem;margin-top:16px;font-weight:800;font-size:.86rem}
.cw-ft-contact a{color:var(--saffron,#ffbd49)}
@media(max-width:1000px){.cw-ft-top{grid-template-columns:1fr;gap:28px}.cw-ft-promises{grid-template-columns:repeat(3,1fr)}.cw-ft-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}}
@media(max-width:820px){.cw-ft-cols{grid-template-columns:1fr 1fr;gap:24px}.cw-ft-promises{grid-template-columns:1fr}.cw-ft-legal{grid-template-columns:1fr}}
@media(max-width:560px){.cw-ft{padding:40px 0 90px}.cw-ft-cols{grid-template-columns:1fr;gap:22px}.cw-ft-cta .btn{flex:1 1 100%}}

/* Two promises side by side under the hero CTAs. */
.cw-promise-pair{display:grid;gap:8px;justify-items:start}
.cw-promise-pair .cw-promise{width:100%}
.cw-promise-alt{background:#fef1f5;border-color:#f0c9d6;color:#852347}
.cw-promise-alt::before{background:var(--chili,#852347);box-shadow:0 0 0 4px rgba(133,35,71,.14)}
@media(max-width:700px){.cw-promise-pair .cw-promise{flex:1 1 100%}}
.cw-est-promise{margin-top:20px;padding:14px 16px;border-radius:14px;background:rgba(255,189,73,.1);border:1px solid rgba(255,189,73,.26)}
.cw-est-promise b{display:block;color:var(--saffron,#ffbd49);font:900 .84rem/1.2 Inter,ui-sans-serif,system-ui,sans-serif;margin-bottom:.3rem}
.cw-est-promise span{color:#e6d2d9;font-size:.83rem;line-height:1.55}

/* --- hospitality band ----------------------------------------------------- */
.cw-hosp{background:linear-gradient(180deg,#fff6ec,#fff0df)}
.cw-hosp-head{max-width:70ch}
.cw-hosp-head h2{font:800 clamp(2rem,4.4vw,3.4rem)/1.03 Fraunces,Georgia,serif;letter-spacing:-.04em;margin:.8rem 0 .8rem;color:var(--ink,#3f1830);max-width:16ch}
.cw-hosp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:32px}
.cw-hosp-card{background:#fff;border:1px solid var(--line,#ead5da);border-radius:20px;padding:24px;box-shadow:0 12px 34px rgba(63,24,48,.05)}
.cw-hosp-card b{display:block;font:800 1.2rem/1.25 Fraunces,Georgia,serif;letter-spacing:-.02em;color:var(--ink,#3f1830);margin-bottom:.5rem}
.cw-hosp-card p{margin:0;color:var(--muted,#755d68);font-size:.9rem;line-height:1.6}
.cw-hosp-foot{margin:26px 0 0;padding:16px 18px;border-radius:14px;background:#fff;border:1px dashed #ddd0d4;color:#68545b;font-size:.88rem;line-height:1.6;max-width:78ch}
.cw-promise-lead{background:var(--ink,#3f1830);border-color:var(--ink,#3f1830);color:#f8ebef}
.cw-promise-lead b{color:var(--saffron,#ffbd49)}
.cw-promise-lead::before{background:var(--saffron,#ffbd49);box-shadow:0 0 0 4px rgba(255,189,73,.2)}
@media(max-width:850px){.cw-hosp-grid{grid-template-columns:1fr}}

/* Nav labels are single words; keep them that way even when space is tight. */
.navlinks a{white-space:nowrap}
/* The phone sits in the mobile bar and the footer too, so it is the first
   thing to give way when the header runs out of room. */
@media(max-width:1180px){.nav-actions .btn-outline,.nav-actions a[href^="tel:"]{display:none}}

/* ---------------------------------------------------------------------------
   Header — one markup on all 53 pages.
   There were eight different ones with eight different link sets. Prefixed
   classes so no page's inline stylesheet can turn it back into a ninth.
--------------------------------------------------------------------------- */
.cw-hd{position:sticky;top:0;z-index:90;background:rgba(255,250,244,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(52,26,41,.09)}
.cw-hd-in{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:76px}
.cw-hd-brand{display:inline-flex;align-items:center;flex:none}
.cw-hd-nav{display:flex;align-items:center;gap:26px}
.cw-hd-nav a{white-space:nowrap;font:800 .92rem/1 Inter,ui-sans-serif,system-ui,sans-serif;color:#53404b;text-decoration:none;transition:color .15s ease}
.cw-hd-nav a:hover{color:var(--chili,#852347)}
.cw-hd-cta{display:flex;align-items:center;gap:10px;flex:none}
.cw-hd-call,.cw-hd-quote{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;padding:.78rem 1.05rem;font:900 .86rem/1 Inter,ui-sans-serif,system-ui,sans-serif;text-decoration:none;border:1px solid transparent}
.cw-hd-call{background:#fff;border-color:var(--line,#ead5da);color:var(--ink,#3f1830)}
.cw-hd-quote{background:var(--ink,#3f1830);color:#fff}
.cw-hd-quote:hover{background:var(--chili,#852347)}
@media(max-width:1150px){.cw-hd-nav{gap:18px}.cw-hd-call{display:none}}
@media(max-width:900px){.cw-hd-nav{display:none}}
@media(max-width:600px){.cw-hd-in{min-height:64px;gap:12px}}

/* ---------------------------------------------------------------------------
   2026 light theme
   The palette above is now rose / plum / gold / cream. These are the shape and
   emphasis changes that come with it, kept in one block at the end of the file
   so they land after the per-page stylesheets that are inlined on each route.
--------------------------------------------------------------------------- */

/* The announcement bar is the gold strip: it is the only saturated band on the
   page, so it carries the promise rather than whispering it in plum. */
body .top{background:var(--saffron);color:var(--ink);font-weight:800;letter-spacing:.01em}
body .top::first-line{color:inherit}
body .top strong{color:var(--chili)}
body .top a{color:var(--chili);text-decoration:underline;text-underline-offset:3px}

/* Rose is the action colour. Plum is a surface, not a button — when both were
   near-black the primary CTA and the footer read as the same weight. */
body .btn.primary,body .cw-hd-quote,body .quickplan-send,body .cw-est-opts button.on{
  background:var(--chili);border-color:var(--chili);color:#fff}
body .btn.primary:hover,body .cw-hd-quote:hover,body .quickplan-send:hover:enabled{background:#6d1c3a}
/* On plum surfaces the button flips to gold, which is the only thing with
   enough contrast left. */
body .dark .btn.primary,body .cw-est-out .btn,body .cw-ft-cta .btn-dark{
  background:var(--saffron);border-color:var(--saffron);color:var(--ink)}

/* The arch. Indian celebration photography sits under a doorway shape rather
   than a rectangle, and it is the one silhouette on the site nobody else in
   the category is using. */
.hero-image,.hero-image img,.region-hero-photo{border-radius:150px 150px 22px 22px}
@media(max-width:600px){.hero-image,.hero-image img,.region-hero-photo{border-radius:22px}}

/* Focus is gold on every surface — the plum outline disappeared on the footer
   and the dark estimator panel. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible{outline:3px solid var(--saffron);outline-offset:3px}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* The homepage carries its own stylesheet with its own names for the same two
   things — the announcement bar and the primary button. They follow the rest. */
body .topline{background:var(--saffron);color:var(--ink);font-weight:800}
body .topline strong,body .topline a{color:var(--chili)}
body .btn-dark{background:var(--chili);color:#fff;box-shadow:0 12px 28px rgba(133,35,71,.18)}
body .btn-dark:hover{background:#6d1c3a}
body .dark .btn-dark,body .on-dark .btn-dark{background:var(--saffron);color:var(--ink);box-shadow:none}

/* The nav sits in the middle of the bar, and the quote button carries the same
   arrow the hero's does. */
.cw-hd-in .cw-hd-brand,.cw-hd-in .cw-hd-cta{flex:1 1 0}
.cw-hd-in .cw-hd-cta{justify-content:flex-end}
.cw-hd-in .cw-hd-nav{flex:0 1 auto;justify-content:center}
.cw-hd-quote::after{content:"↗";margin-left:.4rem;font-size:1.05em}

/* ---------------------------------------------------------------------------
   Logo lockup
   The mark is the maroon tile with the cloche; the wordmark is set in type
   rather than shipped as a raster, so it stays sharp and recolours itself on
   the dark surfaces instead of needing a second file.
--------------------------------------------------------------------------- */
.cw-lockup{display:inline-flex;align-items:center;gap:12px}
.cw-lockup-mark{display:block;width:46px;height:46px;border-radius:12px}
.cw-lockup-word{display:grid;line-height:1}
.cw-lockup-word b{font:800 1.6rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.035em;color:var(--ink)}
.cw-lockup-word b em{font-style:normal;color:var(--chili)}
.cw-lockup-word small{margin-top:6px;font:800 .58rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.19em;text-transform:uppercase;color:#8a7580}
.cw-ft .cw-lockup-word b,.on-dark .cw-lockup-word b,.dark .cw-lockup-word b{color:#fff}
.cw-ft .cw-lockup-word b em,.on-dark .cw-lockup-word b em,.dark .cw-lockup-word b em{color:var(--saffron)}
.cw-ft .cw-lockup-word small,.on-dark .cw-lockup-word small,.dark .cw-lockup-word small{color:#b9abc4}
@media(max-width:600px){
  .cw-lockup{gap:9px}
  .cw-lockup-mark{width:38px;height:38px;border-radius:10px}
  .cw-lockup-word b{font-size:1.3rem}
  .cw-lockup-word small{font-size:.5rem;letter-spacing:.15em;margin-top:5px}
}


/* The site runs wide. Rather than pull the long-form pages into a narrower
   box — which knocks their headings out of line with the header above — the
   layout stays full width and the running text keeps its own measure. */
.article-body p,.article-body li,.article-hero p,.cw-hosp-head p{max-width:80ch}
.article-shell{grid-template-columns:minmax(0,1fr) 340px}
