:root{
  --bg:#FFFFFF;
  --bg-panel:#F6F3ED;
  --ink:#171310;
  --ink-soft:#6C6459;
  --ink-faint:#766D60;
  --line:#E7E1D4;
  --brand:#5B3A22;
  --brand-soft:#8A6647;
  --black:#100D0A;
  --on-black:#F7F2E9;
  --on-black-soft:#C9BFAE;
}
*{box-sizing:border-box;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;}
}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Jost','Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
::selection{background:var(--ink);color:var(--bg);}
:focus-visible{outline:1px solid var(--brand);outline-offset:3px;}
img{max-width:100%;}
p{color:var(--ink-soft);line-height:1.8;margin:0 0 20px;}
h1,h2,h3{font-family:'Bodoni Moda',Didot,'Times New Roman',serif;font-weight:500;text-wrap:balance;margin:0;color:var(--ink);}
.wrap{max-width:1100px;margin-inline:auto;padding-inline:20px;}
.wrap-narrow{max-width:720px;margin-inline:auto;padding-inline:20px;}
.wrap-wide{max-width:960px;margin-inline:auto;padding-inline:20px;}
.eyebrow{font-family:'Jost',sans-serif;font-size:0.7rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--brand);font-weight:600;display:block;}
.accent-line{font-family:'Bodoni Moda',serif;font-style:italic;font-weight:400;color:var(--brand);}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bg);padding:12px 20px;z-index:100;}
.skip-link:focus{left:20px;top:20px;}

/* ---------- header / nav ---------- */
header.site{padding-block:26px;border-bottom:1px solid var(--line);position:relative;}
header.site .inner{max-width:1100px;margin-inline:auto;padding-inline:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.brandmark{display:flex;align-items:center;gap:12px;text-decoration:none;}
.brandmark img{height:30px;width:auto;display:block;}
.brandmark span{font-family:'Bodoni Moda',serif;font-size:0.92rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--ink);}
nav.primary ul{list-style:none;display:flex;gap:26px;margin:0;padding:0;flex-wrap:wrap;}
nav.primary a{text-decoration:none;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft);padding-bottom:4px;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease;}
nav.primary a:hover,nav.primary a:focus-visible{color:var(--ink);border-color:var(--brand);}
nav.primary a[aria-current="page"]{color:var(--ink);border-color:var(--brand);}
.nav-toggle{display:none;align-items:center;gap:8px;background:none;border:1px solid var(--line);padding:9px 16px;font-family:'Jost',sans-serif;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink);cursor:pointer;}
.nav-toggle:hover{border-color:var(--ink);}
@media (max-width:820px){
  .nav-toggle{display:inline-flex;}
  nav.primary{order:3;width:100%;max-height:0;overflow:hidden;transition:max-height .25s ease;}
  nav.primary.open{max-height:520px;}
  nav.primary ul{flex-direction:column;gap:0;padding-top:18px;margin-top:18px;border-top:1px solid var(--line);}
  nav.primary li{border-bottom:1px solid var(--line);}
  nav.primary a{display:block;padding:16px 4px;font-size:0.8rem;}
}

/* ---------- breadcrumb ---------- */
.breadcrumb{max-width:1100px;margin:20px auto 0;padding-inline:20px;font-size:0.76rem;letter-spacing:0.02em;color:var(--ink-faint);}
.breadcrumb a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);}
.breadcrumb a:hover{color:var(--brand);border-color:var(--brand);}
.breadcrumb .sep{margin:0 8px;color:var(--ink-faint);}
.breadcrumb .current{color:var(--ink);}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:'Jost',sans-serif;font-weight:500;font-size:0.76rem;letter-spacing:0.16em;text-transform:uppercase;text-decoration:none;padding:16px 34px;border:1px solid var(--ink);color:var(--bg);background:var(--ink);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.btn:hover,.btn:focus-visible{background:var(--bg);color:var(--ink);}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn.ghost:hover{border-color:var(--ink);}
.btn.on-black{background:var(--on-black);color:var(--black);border-color:var(--on-black);}
.btn.on-black:hover{background:transparent;color:var(--on-black);}
.actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}
.link-row{display:flex;gap:26px;flex-wrap:wrap;justify-content:center;}
.link-row a{font-size:0.76rem;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;transition:color .2s ease,border-color .2s ease;}
.link-row a:hover{color:var(--brand);border-color:var(--brand);}

/* ---------- hero ---------- */
.hero{padding-block:88px 64px;text-align:center;}
.hero .mark{width:135px;height:auto;margin:0 auto 30px;opacity:0.94;display:block;}
@media (max-width:900px){.hero .mark{width:110px;margin-bottom:26px;}}
@media (max-width:520px){.hero .mark{width:90px;margin-bottom:22px;}}
.hero .eyebrow{text-align:center;margin-bottom:16px;}
.hero h1{font-weight:500;font-size:clamp(2rem,4.2vw,3.2rem);max-width:22ch;margin-inline:auto;line-height:1.18;}
.hero .accent-line{display:block;max-width:44ch;margin:22px auto 0;font-size:1.25rem;}
.hero .sub{margin-top:18px;max-width:50ch;margin-inline:auto;font-size:0.94rem;}
.hero .actions{margin-top:34px;}

/* ---------- generic page header (non-home) ---------- */
.page-head{padding-block:56px 40px;text-align:center;}
.page-head h1{font-size:clamp(1.9rem,4vw,2.6rem);margin-top:12px;line-height:1.2;}
.page-head p.lede{max-width:60ch;margin:16px auto 0;font-size:1rem;}
.page-head.left{text-align:left;}
.page-head.left p.lede{margin-inline:0;}

/* ---------- section shell ---------- */
section{padding-block:80px;}
.section-head{text-align:center;max-width:58ch;margin:0 auto 46px;}
.section-head h2{font-size:clamp(1.6rem,2.8vw,2.1rem);margin-top:12px;font-weight:500;}
.section-head p{margin-top:14px;}
.bg-panel{background:var(--bg-panel);}

/* ---------- service cards (home + hub) ---------- */
.services-wrap{border-block:1px solid var(--line);}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.service{padding:0 30px;text-align:left;border-right:1px solid var(--line);text-decoration:none;display:block;transition:opacity .2s ease;}
.service:hover,.service:focus-visible{opacity:0.72;}
.service:last-child{border-right:none;}
.service h3{font-size:1.02rem;font-weight:500;margin-bottom:12px;}
.service p{font-size:0.88rem;max-width:30ch;}
.service .more{display:block;margin-top:14px;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--brand);}
@media (max-width:860px){.services{grid-template-columns:repeat(2,1fr);row-gap:44px;}.service{border-right:none;}}
@media (max-width:520px){.services{grid-template-columns:1fr;}}

/* ---------- occasions ---------- */
.tag-field{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:860px;margin-inline:auto;}
.tag{font-family:'Jost',sans-serif;font-size:0.76rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;padding:13px 22px;border:1px solid var(--ink);color:var(--ink);background:var(--bg);}
a.tag{text-decoration:none;}
a.tag:hover,a.tag:focus-visible{background:var(--ink);color:var(--bg);}
.occasions-close{text-align:center;max-width:48ch;margin:36px auto 0;font-family:'Bodoni Moda',serif;font-style:italic;color:var(--brand);font-size:1.05rem;}

/* ---------- social ---------- */
.social-panels{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:900px;margin:0 auto;}
.social-panel{border:1px solid var(--line);padding:44px 32px;text-align:center;}
.social-panel .platform{font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-faint);display:block;margin-bottom:10px;}
.social-panel .handle{font-family:'Bodoni Moda',serif;font-size:1.6rem;font-weight:500;color:var(--ink);display:block;margin-bottom:24px;}
@media (max-width:640px){.social-panels{grid-template-columns:1fr;}}

/* ---------- FAQ accordion ---------- */
.faq-list{max-width:760px;margin:0 auto;}
details.faq-item{border-bottom:1px solid var(--line);padding-block:20px;}
details.faq-item summary{cursor:pointer;font-family:'Bodoni Moda',serif;font-size:1.05rem;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
details.faq-item summary::-webkit-details-marker{display:none;}
details.faq-item summary::after{content:'+';font-family:'Jost',sans-serif;font-size:1.3rem;color:var(--brand);flex-shrink:0;}
details.faq-item[open] summary::after{content:'\2212';}
details.faq-item p{margin-top:14px;font-size:0.94rem;}

/* ---------- index / hub grids ---------- */
.index-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px;}
.index-card{display:block;border:1px solid var(--line);padding:26px 24px;text-decoration:none;transition:border-color .2s ease;}
.index-card:hover,.index-card:focus-visible{border-color:var(--brand);}
.index-card h2,.index-card h3{font-size:1.1rem;font-weight:500;margin-bottom:10px;}
.index-card p{margin:0;font-size:0.88rem;}
@media (max-width:700px){.index-grid{grid-template-columns:1fr;}}

/* ---------- article / long-copy page body ---------- */
.page-body{max-width:720px;margin:0 auto;padding-block:8px 40px;}
.page-body h2{font-size:1.28rem;font-weight:500;margin:38px 0 14px;}
.page-body h3{font-size:1.06rem;font-weight:500;margin:26px 0 10px;}
.page-body ul{margin:0 0 20px;padding-left:1.2em;color:var(--ink-soft);line-height:1.8;}
.page-body li{margin-bottom:6px;}
.page-body .lede{font-size:1.05rem;color:var(--ink-soft);}
.byline{font-size:0.8rem;color:var(--ink-faint);margin:18px 0 30px;padding-bottom:30px;border-bottom:1px solid var(--line);}
.enquiry-note{background:var(--bg-panel);padding:20px 24px;font-size:0.88rem;color:var(--ink-soft);margin:28px 0;}
blockquote.template{border-left:2px solid var(--brand);padding:4px 0 4px 20px;font-style:italic;color:var(--ink-soft);margin:20px 0;}

/* ---------- CTA band ---------- */
.cta-band{background:var(--black);color:var(--on-black);text-align:center;padding:56px 32px;margin-top:56px;}
.cta-band h2{color:var(--on-black);font-size:1.4rem;margin-bottom:14px;}
.cta-band p{color:var(--on-black-soft);max-width:46ch;margin:0 auto 26px;}

/* ---------- related links ---------- */
.related{margin-top:44px;padding-top:32px;border-top:1px solid var(--line);}
.related h2{font-size:1.1rem;margin-bottom:16px;}
.related ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.related a{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);}
.related a:hover{color:var(--brand);border-color:var(--brand);}

/* ---------- about / area section ---------- */
.about-wrap{text-align:center;max-width:640px;margin:0 auto;}

/* ---------- enquiry form ---------- */
.enquire-form{max-width:640px;margin:0 auto;display:grid;gap:20px;}
.enquire-form .field{display:flex;flex-direction:column;gap:8px;}
.enquire-form .field.two{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.enquire-form label{font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);}
.enquire-form input,.enquire-form select,.enquire-form textarea{
  font-family:'Jost',sans-serif;font-size:0.95rem;color:var(--ink);
  background:var(--bg);border:1px solid var(--line);padding:13px 14px;width:100%;
}
.enquire-form input:focus-visible,.enquire-form select:focus-visible,.enquire-form textarea:focus-visible{border-color:var(--brand);}
.enquire-form fieldset{border:1px solid var(--line);padding:16px 18px;}
.enquire-form legend{font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);padding:0 6px;}
.enquire-form .checks{display:flex;flex-wrap:wrap;gap:14px 22px;}
.enquire-form .checks label{display:flex;align-items:center;gap:8px;font-size:0.88rem;text-transform:none;letter-spacing:0;color:var(--ink);white-space:nowrap;}
.enquire-form .checks input{width:auto;flex-shrink:0;}
.enquire-form .consent{font-size:0.82rem;color:var(--ink-faint);}
.form-status{margin-top:18px;padding:16px 18px;font-size:0.9rem;display:none;}
.form-status.success{display:block;background:var(--bg-panel);color:var(--ink);border-left:3px solid var(--brand);}
.form-status.error{display:block;background:#FBEAE5;color:#7A2E1B;border-left:3px solid #B3402A;}

/* ---------- footer ---------- */
footer.site{padding-block:48px 40px;border-top:1px solid var(--line);background:var(--bg-panel);}
footer.site .inner{max-width:1100px;margin-inline:auto;padding-inline:20px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;}
footer.site h4{font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;font-weight:600;}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
footer.site a{color:var(--ink-soft);text-decoration:none;font-size:0.88rem;}
footer.site a:hover{color:var(--brand);}
footer.site .foot-brand p{font-size:0.86rem;max-width:32ch;margin-top:10px;}
footer.site .legal{max-width:1100px;margin:36px auto 0;padding:20px 20px 0;border-top:1px solid var(--line);font-size:0.76rem;color:var(--ink-faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
@media (max-width:760px){footer.site .inner{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){footer.site .inner{grid-template-columns:1fr;}}
