:root{
  --cream:#f7f1e7;
  --paper:#fffaf3;
  --teal:#176f73;
  --teal-dark:#0f5559;
  --teal-soft:#dfeceb;
  --brown:#603713;
  --brown-soft:#86674d;
  --ink:#30271f;
  --muted:#68584b;
  --line:#ddcfc0;
  --white:#fff;
  --error:#a23d31;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.55;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.container{width:min(1180px,calc(100% - 44px));margin:auto}
.eyebrow{
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--teal);
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 22px;
  border-radius:999px;
  border:1.5px solid var(--teal);
  font-weight:800;
  cursor:pointer;
  transition:.18s ease;
}
.btn.primary{background:var(--teal);color:#fff}
.btn.secondary{background:transparent;color:var(--teal)}
.btn:hover{transform:translateY(-1px)}

.site-header{
  min-height:82px;
  background:rgba(247,241,231,.96);
  border-bottom:1px solid rgba(96,55,19,.08);
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(10px);
}
.site-header .nav{
  min-height:82px;
  display:flex;
  align-items:center;
  gap:22px;
}
.nav-logo{flex:0 0 auto}
.nav-logo img{
  width:175px;
  max-height:65px;
  object-fit:contain;
  object-position:left center;
}
.nav-menu{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:22px;
  min-width:0;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:20px;
  color:var(--brown);
  font-size:.88rem;
  font-weight:700;
  white-space:nowrap;
}
.nav-links a{
  padding:7px 0 5px;
  border-bottom:1px solid transparent;
}
.nav-links a:hover,
.nav-links a[aria-current="page"]{
  color:var(--teal);
  border-bottom-color:rgba(23,111,115,.45);
}
.nav-actions{display:flex;align-items:center;gap:9px;white-space:nowrap}
.nav-toggle{
  display:none;
  margin-left:auto;
  width:44px;
  height:44px;
  border:1px solid rgba(96,55,19,.16);
  border-radius:999px;
  background:var(--paper);
  color:var(--teal);
  cursor:pointer;
  align-items:center;
  justify-content:center;
  font-size:1.25rem;
  line-height:1;
}
.site-footer{
  background:#4a2b15;
  color:#f8eee4;
  padding:36px 0;
}
.site-footer .footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.footer-logo img{
  width:180px;
  filter:brightness(0) invert(1);
  opacity:.93;
}
.footer-copy{margin-left:auto;text-align:right}
.footer-copy p{margin:0;font-size:.86rem}
.footer-copy a{text-decoration:underline;text-decoration-color:rgba(248,238,228,.28);text-underline-offset:3px}

@media (max-width:1100px){
  .nav-links{gap:14px;font-size:.81rem}
  .nav-actions .btn{padding:0 16px}
}
@media (max-width:920px){
  .site-header,.site-header .nav{min-height:72px}
  .nav-logo img{width:145px;max-height:58px}
  .nav-toggle{display:inline-flex}
  .nav-menu{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:72px;
    margin:0;
    padding:20px 22px 24px;
    background:rgba(247,241,231,.99);
    border-bottom:1px solid rgba(96,55,19,.1);
    box-shadow:0 14px 30px rgba(73,48,27,.08);
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }
  .site-header.menu-open .nav-menu{display:flex}
  .nav-links{flex-direction:column;align-items:stretch;gap:3px;font-size:.95rem}
  .nav-links a{padding:9px 0}
  .nav-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .nav-actions .btn{width:100%;padding:0 14px}
}
@media (max-width:680px){
  .container{width:min(100% - 28px,1180px)}
  .nav-actions{grid-template-columns:1fr}
  .site-footer .footer{flex-direction:column;text-align:center}
  .footer-copy{margin-left:0;text-align:center}
}
@media print{
  .site-header{position:relative}
}

/* AUDIENCE_CTA_PASS */
.text-link{
  display:inline-block;
  color:var(--teal);
  font-weight:800;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:5px;
  text-decoration-color:rgba(23,111,115,.28);
}
.text-link:hover{color:var(--teal-dark);text-decoration-color:currentColor}
.audience-jump-links{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin-top:24px;
  color:var(--teal);
  font-weight:800;
}
.audience-jump-links a{border-bottom:1px solid rgba(23,111,115,.28);padding-bottom:3px}
.audience-jump-links a:hover{border-bottom-color:var(--teal)}
.audience-jump-links span{color:var(--brown-soft);font-family:Georgia,serif}
@media (max-width:920px){.nav-actions{display:block}.nav-actions .btn{width:100%}}

h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;color:var(--teal)}
.rule{display:flex;align-items:center;gap:13px;color:var(--teal);margin:17px 0}
.rule:before,.rule:after{content:"";height:1px;flex:1;background:var(--teal);opacity:.5}
.rule span{font-family:Georgia,serif;font-size:1.3rem}
/* header */
/* hero */
.hero{background:var(--paper);padding:52px 0 72px;position:relative;overflow:hidden}
.hero:before{content:"♡";position:absolute;left:-30px;top:220px;font:160px Georgia,serif;color:rgba(23,111,115,.05);transform:rotate(-14deg)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:52px;align-items:start}
.hero-logo img{width:285px;max-height:205px;object-fit:contain;object-position:left center;margin-bottom:12px}
.hero h1{font:500 clamp(2.45rem,4vw,4.7rem)/1.02 Georgia,"Times New Roman",serif;color:var(--teal);margin:7px 0 25px;max-width:720px}
.hero-copy p{font-size:1rem;color:#4f4238;margin:0 0 17px;max-width:700px}
.hero-copy p:first-of-type{font-size:1.08rem}
.hero-copy strong{color:var(--brown)}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}
.area{font-size:.86rem;color:var(--brown-soft);font-weight:700;margin-top:18px}
/* collage */
.collage{display:grid;grid-template-columns:1fr .92fr;grid-template-rows:230px 190px 215px;gap:12px;position:sticky;top:110px}
.tile{overflow:hidden;border-radius:18px;background:#ddd;box-shadow:0 16px 34px rgba(73,48,27,.12);border:5px solid white}
.tile img{width:100%;height:100%;object-fit:cover}
.tile.one{grid-column:1/3}
.tile.two{grid-column:1}
.tile.three{grid-column:2}
.tile.four{grid-column:1/3}
.collage-badge{position:absolute;right:-11px;top:252px;width:130px;height:130px;border-radius:50%;border:5px solid var(--paper);background:var(--teal);color:white;display:flex;align-items:center;justify-content:center;text-align:center;padding:15px;font-size:.71rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;transform:rotate(5deg)}
/* moment statement */
.promise{padding:84px 0;text-align:center}
.promise h2{font-size:clamp(2rem,3.4vw,3.25rem);line-height:1.08;margin:8px 0 14px}
.promise .lead{max-width:820px;margin:auto;color:var(--muted);font-size:1.05rem}
.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px}
.promise-card{background:rgba(255,250,243,.7);padding:30px 25px;border-top:2px solid var(--teal)}
.promise-card h3{font:500 1.42rem Georgia,serif;color:var(--brown);margin:4px 0 8px}
.promise-card p{font-size:.92rem;color:var(--muted);margin:0}
/* occasions */
.occasions{background:var(--paper);padding:88px 0}
.center{text-align:center}
.section-title{font-size:clamp(2.1rem,3.6vw,3.5rem);line-height:1.06;margin:8px 0 12px}
.section-sub{max-width:780px;margin:0 auto;color:var(--muted)}
.occasion-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:38px}
.occasion{height:305px;border-radius:18px;position:relative;overflow:hidden;background-position:center;background-size:cover;box-shadow:0 13px 30px rgba(73,48,27,.12)}
.occasion:after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(transparent,rgba(31,20,13,.87))}
.occasion-copy{position:absolute;z-index:2;left:18px;right:18px;bottom:18px;color:white}
.occasion h3{font:500 1.5rem Georgia,serif;margin:0 0 5px}
.occasion p{font-size:.84rem;margin:0;opacity:.95}
/* services */
.services{padding:90px 0}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px}
.service{background:var(--paper);border:1px solid rgba(96,55,19,.10);border-radius:17px;padding:24px 22px}
.service .icon{font-size:1.35rem;color:var(--teal)}
.service h3{font:500 1.31rem Georgia,serif;color:var(--brown);margin:8px 0 6px}
.service p{font-size:.88rem;color:var(--muted);margin:0}
/* path */
.path{padding:88px 0;background:var(--teal-soft)}
.path-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:34px}
.path-card{background:var(--paper);border-radius:22px;padding:34px;box-shadow:0 14px 30px rgba(73,48,27,.08)}
.path-card h3{font:500 2rem Georgia,serif;color:var(--brown);margin:5px 0 9px}
.path-card p,.path-card li{color:var(--muted)}
.path-card ul{padding-left:19px;margin:16px 0 25px}
/* welcome */
.welcome{padding:90px 0;background:var(--paper)}
.welcome-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:46px;align-items:center}
.welcome-photo{height:470px;position:relative;border-radius:24px;overflow:hidden;box-shadow:0 15px 34px rgba(73,48,27,.12)}
.welcome-photo img{width:100%;height:100%;object-fit:cover}
.note{position:absolute;right:22px;bottom:22px;width:210px;background:#f5eadc;color:var(--teal);padding:23px 19px;border-radius:8px;box-shadow:0 11px 24px rgba(0,0,0,.17);font:italic 1.05rem Georgia,serif;text-align:center;transform:rotate(3deg)}
.welcome h2{font-size:clamp(2.5rem,4.2vw,4.25rem);line-height:1;margin:8px 0 18px}
.welcome p{color:var(--muted);font-size:1rem}
/* ending */
.endcap{padding:83px 22px;text-align:center;color:white;background:linear-gradient(rgba(67,39,18,.78),rgba(67,39,18,.78)),url("../images/background-charcuterie.webp") center/cover}
.endcap h2{color:white;font-size:clamp(2.4rem,4vw,4.1rem);line-height:1.02;margin:0 0 16px}
.endcap p{max-width:780px;margin:auto;font-size:1.05rem}
.endcap strong{font-family:Georgia,serif;font-size:1.2rem}
@media (max-width:980px){
.hero-grid,.welcome-grid{grid-template-columns:1fr}
.collage{position:relative;top:auto;max-width:720px}
.promise-grid{grid-template-columns:1fr}
.occasion-grid,.service-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:650px){
.hero{padding-top:35px}
.hero-logo img{width:235px}
.collage{grid-template-rows:175px 150px 175px}
.collage-badge{width:104px;height:104px;font-size:.59rem;top:202px}
.occasion-grid,.service-grid,.path-grid{grid-template-columns:1fr}
}

/* AUDIENCE_CTA_PASS */
.occasion-link{display:block;color:inherit;border-radius:18px;outline:none}
.occasion{transition:transform .2s ease,box-shadow .2s ease}
.occasion-link:hover .occasion,.occasion-link:focus-visible .occasion{transform:translateY(-4px);box-shadow:0 18px 36px rgba(73,48,27,.17)}
.occasion-link:focus-visible{box-shadow:0 0 0 3px var(--teal)}
.occasion:after{inset:28% 0 0;background:linear-gradient(transparent,rgba(31,20,13,.9))}
.occasion-copy{bottom:17px}
.occasion p{font-size:.82rem;line-height:1.42}
.card-link{display:block;margin-top:10px;font-size:.76rem;font-weight:800;letter-spacing:.02em;color:#fff}


/* CURRENT_LIVE_FOOTER_AND_COOKIE_SUPPORT */
.footer-copy .footer-links{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:flex-end;margin-top:14px;font-size:.80rem}
.footer-copy .footer-links a{text-decoration:underline;text-decoration-color:rgba(248,238,228,.30);text-underline-offset:3px}
body.modal-open{overflow:hidden}
.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:999;background:#fffaf3;border:1px solid var(--line);box-shadow:0 18px 50px rgba(38,26,17,.2);border-radius:18px;padding:18px 20px;display:none}.cookie-banner.show{display:block}.cookie-inner{width:min(1180px,100%);margin:auto;display:flex;align-items:center;gap:24px}.cookie-copy{flex:1}.cookie-copy strong{display:block;color:var(--brown);margin-bottom:4px}.cookie-copy p{margin:0;font-size:.86rem;color:var(--muted)}.cookie-actions{display:flex;gap:8px;flex-wrap:wrap}.cookie-actions .btn{min-height:42px;padding:0 16px;font-size:.82rem}
.cookie-modal[hidden]{display:none}.cookie-modal{position:fixed;inset:0;z-index:1000;background:rgba(27,20,15,.55);display:flex;align-items:center;justify-content:center;padding:20px}.cookie-panel{width:min(620px,100%);max-height:90vh;overflow:auto;background:var(--paper);border-radius:22px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.cookie-panel h2{font-size:2rem;margin:0 0 8px}.cookie-panel>p{color:var(--muted);margin:0 0 22px}.cookie-row{display:grid;grid-template-columns:1fr auto;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.cookie-row h3{font:700 1rem Arial,sans-serif;margin:0 0 5px}.cookie-row p{font-size:.84rem;color:var(--muted);margin:0}.switch{position:relative;width:48px;height:28px}.switch input{position:absolute;opacity:0}.slider{position:absolute;inset:0;background:#b7aaa0;border-radius:999px;cursor:pointer}.slider:before{content:"";position:absolute;width:20px;height:20px;left:4px;top:4px;background:#fff;border-radius:50%;transition:.15s}.switch input:checked+.slider{background:var(--teal)}.switch input:checked+.slider:before{transform:translateX(20px)}.switch input:disabled+.slider{opacity:.7;cursor:not-allowed}.cookie-modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;flex-wrap:wrap}
@media(max-width:680px){.footer-copy .footer-links{justify-content:center}.cookie-inner{flex-direction:column;align-items:stretch}.cookie-actions{display:grid;grid-template-columns:1fr}.cookie-actions .btn{width:100%}.cookie-modal-actions{display:grid;grid-template-columns:1fr}.cookie-modal-actions .btn{width:100%}}

/* FOOTER_TIGHTENED_SEPT01_2026 */
.site-footer{padding:32px 0 18px}
.site-footer .footer-shell{display:block}
.footer-grid{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(250px,1fr) minmax(360px,1.35fr);gap:38px;align-items:start}
.footer-brand,.footer-contact,.footer-nav{min-width:0}
.footer-logo{display:inline-block}
.footer-logo img{width:158px;margin:0;filter:brightness(0) invert(1);opacity:.95}
.footer-tagline{margin:13px 0 0;font-size:.78rem;line-height:1.5;color:rgba(248,238,228,.86)}
.footer-heading{margin:2px 0 11px;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(248,238,228,.72)}
.footer-contact address{display:grid;gap:5px;margin:0;font-style:normal;font-size:.86rem;line-height:1.45}
.footer-contact address a{width:max-content;max-width:100%;text-decoration:none}
.footer-contact address a:hover,.footer-contact address a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.footer-area{margin-top:4px;font-size:.78rem;line-height:1.45;color:rgba(248,238,228,.78)}
.footer-nav-links{display:grid;grid-template-columns:1fr 1fr;gap:7px 24px;font-size:.83rem;line-height:1.35}
.footer-nav-links a{text-decoration:none}
.footer-nav-links a:hover,.footer-nav-links a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.footer-bottom{margin-top:24px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);display:flex;align-items:flex-start;justify-content:space-between;gap:24px;font-size:.73rem;color:rgba(248,238,228,.74)}
.footer-utility-links{display:flex;flex-wrap:wrap;gap:5px 15px}
.footer-utility-links a{text-decoration:none;color:inherit}
.footer-utility-links a:hover,.footer-utility-links a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.footer-copyright{white-space:nowrap;text-align:right}
@media(max-width:920px){.footer-grid{grid-template-columns:180px 1fr;gap:28px 38px}.footer-nav{grid-column:1/-1}.footer-nav-links{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-bottom{align-items:flex-start}}
@media(max-width:680px){.site-footer{padding:28px 0 18px}.footer-grid{grid-template-columns:1fr;gap:24px;text-align:center}.footer-logo img{margin:auto}.footer-contact address{justify-items:center}.footer-contact address a{width:auto}.footer-nav{grid-column:auto}.footer-nav-links{grid-template-columns:1fr 1fr;gap:8px 18px}.footer-bottom{margin-top:22px;flex-direction:column;align-items:center;text-align:center;gap:12px}.footer-utility-links{justify-content:center}.footer-copyright{white-space:normal;text-align:center}}
@media(max-width:440px){.footer-nav-links{grid-template-columns:1fr}}

/* ACCESSIBILITY_HARDENING_SEPT01_2026 */
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--teal);color:#fff;padding:10px 14px;border-radius:8px;z-index:9999}.skip-link:focus{left:12px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.switch input:focus-visible+.slider{outline:3px solid var(--teal);outline-offset:3px}

.quote-review-note{margin-top:14px;padding:12px 14px;border-left:3px solid var(--teal);background:var(--teal-soft);border-radius:0 10px 10px 0;color:var(--brown);font-size:.9rem;line-height:1.55}

/* CUSTOMER_READY_POLISH_SEPT02_2026 */
img{height:auto}
.nav-logo img{height:auto;max-height:none;object-fit:contain}
.footer-logo img{height:auto!important;max-height:104px!important;object-fit:contain}
.hero-logo img{height:auto;object-fit:contain}

/* Keep the approved palette and layout, but tighten rhythm and readability. */
body{font-size:16px}
.hero-copy p{max-width:650px}
.hero-copy p + p{margin-top:10px}
.section-sub,.promise .lead{line-height:1.7}
.service{display:flex;flex-direction:column;justify-content:flex-start}
.service h3{margin-top:0}
.service p{line-height:1.55}
.path-card p,.path-card li{line-height:1.55}

/* Footer: three clear jobs, then a quiet utility row. */
.site-footer{padding:34px 0 18px}
.footer-grid{grid-template-columns:minmax(150px,.72fr) minmax(250px,1fr) minmax(330px,1.2fr);gap:48px;align-items:start}
.footer-logo img{width:132px!important;margin:0!important;filter:brightness(0) invert(1);opacity:.95}
.footer-tagline{max-width:190px;margin-top:10px}
.footer-contact address{gap:6px}
.footer-area{max-width:330px;margin-top:7px}
.footer-nav-links{gap:8px 28px}
.footer-bottom{margin-top:22px;padding-top:13px}

@media(max-width:920px){
  .footer-grid{grid-template-columns:150px 1fr;gap:30px 40px}
  .footer-nav{grid-column:1/-1}
}
@media(max-width:680px){
  .footer-logo img{width:124px!important;margin:auto!important}
  .footer-tagline,.footer-area{max-width:none;margin-left:auto;margin-right:auto}
}


/* Homepage logo sizing for the tighter source canvas. */
.nav-logo img{width:112px}
.hero-logo img{width:285px;max-height:none}
@media(max-width:920px){.nav-logo img{width:100px}}
@media(max-width:650px){.hero-logo img{width:235px}}
