
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,600;0,700;1,400;1,600&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600&family=Inter:wght@300;400;500;600&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
:root {
  --tc:#B85C3A; --tcd:#8B3E22; --tcl:#C9714A;
  --sand:#F5F0E8; --cream:#FDFAF5; --warm:#FAF7F2;
  --dark:#1C1815; --bc:#5C4033; --mu:#7A6B5E; --bo:#DDD5C8;
  --fd:'Playfair Display',Georgia,serif;
  --fb:'Cormorant Garamond',Georgia,serif;
  --fu:'Inter',sans-serif;
  --nh:74px;
}
body { font-family:var(--fb); background:var(--cream); color:var(--dark); line-height:1.7; overflow-x:hidden; }
a { text-decoration:none; color:inherit; }
img { display:block; max-width:100%; }
h1 { font-family:var(--fd); font-weight:700; font-size:clamp(2.8rem,5.5vw,5rem); line-height:1.04; }
h2 { font-family:var(--fd); font-weight:600; font-size:clamp(1.8rem,3.2vw,2.7rem); line-height:1.18; }
h3 { font-family:var(--fd); font-weight:600; font-size:clamp(1.05rem,1.8vw,1.45rem); line-height:1.25; }
p  { font-size:1.05rem; line-height:1.82; color:var(--bc); }

.wrap { max-width:1200px; margin:0 auto; padding:0 2.5rem; }

/* BUTTONS */
.btn { display:inline-block; font-family:var(--fu); font-size:.72rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; padding:.9rem 2.2rem; border-radius:2px; border:1.5px solid transparent; cursor:pointer; transition:all .22s; white-space:nowrap; line-height:1; }
.btn-s  { background:var(--tc); color:#fff; border-color:var(--tc); }
.btn-s:hover  { background:var(--tcd); border-color:var(--tcd); transform:translateY(-1px); }
.btn-w  { background:transparent; color:#fff; border-color:rgba(255,255,255,.8); }
.btn-w:hover  { background:rgba(255,255,255,.1); }
.btn-tc { background:transparent; color:var(--tc); border-color:var(--tc); }
.btn-tc:hover { background:var(--tc); color:#fff; }
.btn-lg { padding:1rem 2.6rem; font-size:.76rem; }

/* NAV */
#nav { position:fixed; top:0; left:0; right:0; z-index:999; height:var(--nh); transition:background .35s,box-shadow .35s; }
#nav.sc { background:rgba(253,250,245,.97); backdrop-filter:blur(10px); box-shadow:0 1px 20px rgba(0,0,0,.07); }
.nw { max-width:1200px; margin:0 auto; padding:0 2.5rem; height:100%; display:flex; align-items:center; gap:1.5rem; }
.logo { display:flex; align-items:center; gap:.75rem; flex-shrink:0; }
.logo-ring { width:36px; height:36px; border-radius:50%; border:1.5px solid rgba(255,255,255,.75); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.9); font-size:1rem; transition:all .3s; position:relative; }
.logo-ring::after { content:''; position:absolute; inset:4px; border-radius:50%; border:.5px solid rgba(255,255,255,.35); }
#nav.sc .logo-ring { border-color:var(--tc); color:var(--tc); }
#nav.sc .logo-ring::after { border-color:rgba(184,92,58,.3); }
.logo-words { display:flex; flex-direction:column; gap:1px; }
.logo-n { font-family:var(--fu); font-size:.75rem; font-weight:600; letter-spacing:.16em; color:#fff; line-height:1; transition:color .3s; }
.logo-s { font-family:var(--fu); font-size:.55rem; letter-spacing:.13em; color:rgba(255,255,255,.6); line-height:1; transition:color .3s; }
#nav.sc .logo-n { color:var(--dark); }
#nav.sc .logo-s { color:var(--mu); }
.nl { display:flex; list-style:none; gap:1.8rem; margin-left:auto; }
.nl a { font-family:var(--fu); font-size:.69rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.88); transition:color .2s; padding-bottom:3px; border-bottom:1px solid transparent; }
.nl a:hover,.nl a.on { color:#fff; border-bottom-color:rgba(255,255,255,.5); }
#nav.sc .nl a { color:var(--dark); }
#nav.sc .nl a:hover,#nav.sc .nl a.on { color:var(--tc); border-bottom-color:var(--tc); }
.ncta { margin-left:.5rem; font-family:var(--fu); font-size:.67rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,255,255,.75); padding:.48rem 1.2rem; border-radius:2px; transition:all .22s; }
.ncta:hover { background:rgba(255,255,255,.12); }
#nav.sc .ncta { color:var(--tc); border-color:var(--tc); }
#nav.sc .ncta:hover { background:var(--tc); color:#fff; }
.hbg { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; margin-left:auto; }
.hbg span { display:block; width:24px; height:1.5px; background:#fff; border-radius:2px; }
#nav.sc .hbg span { background:var(--dark); }
.mob { display:none; flex-direction:column; background:var(--cream); padding:1.5rem 2.5rem; border-bottom:.5px solid var(--bo); box-shadow:0 6px 20px rgba(0,0,0,.07); }
.mob.open { display:flex; }
.mob a { font-family:var(--fu); font-size:.8rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; color:var(--dark); padding:.6rem 0; border-bottom:.5px solid var(--bo); transition:color .2s; }
.mob a:last-child { border-bottom:none; }
.mob a:hover { color:var(--tc); }

/* HERO — full screen photo, NO text overlay on image */
.hero {
  position:relative;
  width:100%;
  height:100vh;
  min-height:580px;
  overflow:hidden;
}
.hero-photo {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
}
/* Light gradient only at bottom to fade into content below — no text overlay */
.hero-photo::after {
  content:'';
  position:absolute;
  bottom:0; left:0; right:0;
  height:28%;
  background:linear-gradient(to top, rgba(253,250,245,.85) 0%, transparent 100%);
}

/* HERO TEXT — sits BELOW the image, outside the hero section */
.hero-caption {
  background:var(--cream);
  padding:4rem 0 4.5rem;
}
.hero-eyebrow {
  font-family:var(--fu);
  font-size:.7rem;
  font-weight:400;
  letter-spacing:.24em;
  color:var(--mu);
  text-transform:uppercase;
  margin-bottom:.9rem;
}
.hero-caption h1 {
  color:var(--dark);
  margin-bottom:.5rem;
}
.hero-caption h1 em {
  color:var(--tc);
  font-style:italic;
  font-weight:400;
}
.hero-rule {
  display:flex;
  align-items:center;
  gap:.7rem;
  margin:1.5rem 0;
}
.hero-rl { width:38px; height:1px; background:var(--tc); opacity:.6; }
.hero-rd { width:5px; height:5px; border-radius:50%; background:var(--tc); }
.hero-sub {
  color:var(--bc);
  font-size:1.12rem;
  font-family:var(--fb);
  font-weight:300;
  margin-bottom:2.6rem;
  line-height:1.6;
  max-width:480px;
}

/* FEATURE STRIP */
.strip { background:#FAF7F2; border-top:.5px solid #E8E0D5; border-bottom:.5px solid #E8E0D5; }
.strip-row { display:grid; grid-template-columns:repeat(5,1fr); }
.si { display:flex; flex-direction:column; align-items:center; text-align:center; padding:1.9rem 1rem; border-right:.5px solid #E8E0D5; gap:.7rem; }
.si:last-child { border-right:none; }
.si-ico { width:48px; height:48px; display:flex; align-items:center; justify-content:center; }
.si-lbl { font-family:var(--fu); font-size:.62rem; font-weight:600; letter-spacing:.1em; color:var(--dark); line-height:1.5; text-transform:uppercase; }

/* SECTIONS */
.sec { padding:5.5rem 0; }
.sec-sand { background:var(--sand); }
.two { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.ey { font-family:var(--fu); font-size:.67rem; font-weight:600; letter-spacing:.18em; color:var(--tc); text-transform:uppercase; margin-bottom:.75rem; }
.dash { width:36px; height:1.5px; background:var(--tc); margin:1.4rem 0; position:relative; }
.dash::before { content:''; position:absolute; width:5px; height:5px; background:var(--tc); border-radius:50%; top:-1.75px; left:50%; transform:translateX(-50%); }
.lnk { display:inline-flex; align-items:center; gap:.45rem; font-family:var(--fu); font-size:.68rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--tc); transition:gap .2s; }
.lnk:hover { gap:.8rem; }
.tag { display:inline-block; font-family:var(--fu); font-size:.6rem; font-weight:600; letter-spacing:.1em; color:var(--tc); border:.5px solid var(--tc); padding:.2rem .7rem; border-radius:50px; text-transform:uppercase; margin-bottom:.65rem; }
.hdr { margin-bottom:2.5rem; }
.hdr.c { text-align:center; }

/* GALLERY */
.gal-row { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.gal-card { display:block; transition:transform .3s; }
.gal-card:hover { transform:translateY(-5px); }
.gal-img { width:100%; aspect-ratio:3/4; overflow:hidden; border-radius:3px; margin-bottom:.75rem; }
.gal-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s; }
.gal-card:hover .gal-img img { transform:scale(1.05); }
.gal-lbl { font-family:var(--fu); font-size:.62rem; font-weight:600; letter-spacing:.12em; color:var(--dark); text-align:center; text-transform:uppercase; }

/* CTA */
.cta-sec { position:relative; padding:5.5rem 0; overflow:hidden; }
.cta-bg { position:absolute; inset:0; background:linear-gradient(100deg,#6B2510 0%,#9B3E20 30%,#C05030 58%,#8B3018 100%); }
.cta-row { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:3rem; }
.cta-ey { font-family:var(--fu); font-size:.67rem; font-weight:600; letter-spacing:.18em; color:rgba(255,255,255,.55); text-transform:uppercase; margin-bottom:.7rem; }
.cta-row h2 { color:#fff; margin-bottom:.7rem; font-size:clamp(1.7rem,2.8vw,2.2rem); }
.cta-row p { color:rgba(255,255,255,.7); font-size:1rem; }

/* FOOTER */
footer { background:#1C1815; padding:4.5rem 0 2rem; }
.ft-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:3.5rem; padding-bottom:3rem; margin-bottom:2.5rem; border-bottom:.5px solid rgba(255,255,255,.09); }
.ft-ring { width:38px; height:38px; border-radius:50%; border:1.5px solid rgba(200,110,70,.5); display:flex; align-items:center; justify-content:center; color:var(--tcl); font-size:.95rem; margin-bottom:.9rem; position:relative; }
.ft-ring::after { content:''; position:absolute; inset:3px; border-radius:50%; border:.5px solid rgba(200,110,70,.22); }
.ft-nm { display:block; font-family:var(--fu); font-size:.76rem; font-weight:600; letter-spacing:.16em; color:#fff; margin-bottom:.2rem; }
.ft-sb { font-family:var(--fu); font-size:.54rem; letter-spacing:.12em; color:rgba(255,255,255,.38); }
.ft-tg { margin-top:1.3rem; font-family:var(--fd); font-size:1.1rem; font-style:italic; color:var(--tcl); }
.ft-col h5 { font-family:var(--fu); font-size:.64rem; font-weight:600; letter-spacing:.16em; color:#fff; text-transform:uppercase; margin-bottom:1.2rem; }
.ft-col ul { list-style:none; }
.ft-col ul li { margin-bottom:.6rem; }
.ft-col ul li a { font-family:var(--fu); font-size:.77rem; color:rgba(255,255,255,.5); transition:color .2s; }
.ft-col ul li a:hover { color:var(--tcl); }
.ft-soc { margin-top:2rem; }
.ft-soc p { font-family:var(--fu); font-size:.66rem; color:rgba(255,255,255,.38); margin-bottom:.7rem; }
.ft-sr { display:flex; gap:.8rem; }
.soc { width:33px; height:33px; border-radius:50%; border:.5px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.5); font-size:.85rem; transition:all .2s; }
.soc:hover { border-color:var(--tcl); color:var(--tcl); }
.ft-bt { display:flex; justify-content:space-between; align-items:center; }
.ft-bt p { font-family:var(--fu); font-size:.69rem; color:rgba(255,255,255,.27); }
.ft-lg { display:flex; gap:.75rem; align-items:center; }
.ft-lg a { font-family:var(--fu); font-size:.69rem; color:rgba(255,255,255,.27); transition:color .2s; }
.ft-lg a:hover { color:var(--tcl); }
.ft-lg span { color:rgba(255,255,255,.15); }

/* PAGE HERO (inner pages) */
.pg-hero { padding:calc(var(--nh) + 5rem) 0 5rem; background:linear-gradient(135deg,#3a1808 0%,#6e2812 45%,#4e2010 100%); text-align:center; }
.pg-hero .ey { color:rgba(255,255,255,.55); margin-bottom:.65rem; }
.pg-hero h1 { color:#fff; font-size:clamp(2rem,4.5vw,3.2rem); margin-bottom:1rem; }
.pg-hero .sub { color:rgba(255,255,255,.72); max-width:560px; margin:0 auto; font-size:1.05rem; }

/* CARDS */
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:2rem; }
.card { background:#fff; border:.5px solid var(--bo); border-radius:3px; overflow:hidden; transition:transform .28s,box-shadow .28s; }
.card:hover { transform:translateY(-5px); box-shadow:0 10px 28px rgba(0,0,0,.09); }
.c-img { width:100%; aspect-ratio:4/3; }
.c-body { padding:1.4rem; }
.c-body h3 { margin-bottom:.4rem; }
.c-body p { font-size:.95rem; margin-bottom:.65rem; }

/* EXP CARDS */
.exp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; margin-top:2rem; }
.exp-card { background:#fff; border:.5px solid var(--bo); border-radius:3px; padding:2.2rem 1.5rem; text-align:center; transition:transform .28s,box-shadow .28s; }
.exp-card:hover { transform:translateY(-4px); box-shadow:0 8px 22px rgba(0,0,0,.07); }
.exp-icon { font-size:2.2rem; margin-bottom:.9rem; line-height:1; }
.exp-card h3 { font-size:1.1rem; margin-bottom:.6rem; }

/* BLOG */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:2rem; }
.blog-card { background:#fff; border:.5px solid var(--bo); border-radius:3px; overflow:hidden; display:block; transition:transform .28s; }
.blog-card:hover { transform:translateY(-4px); }
.b-img { width:100%; aspect-ratio:16/9; }
.b-body { padding:1.4rem; }
.b-tag { font-family:var(--fu); font-size:.6rem; font-weight:600; letter-spacing:.1em; color:var(--tc); text-transform:uppercase; margin-bottom:.4rem; }
.b-body h3 { font-size:1rem; margin-bottom:.4rem; }
.b-body p { font-size:.88rem; }
.b-date { font-family:var(--fu); font-size:.69rem; color:var(--mu); margin-top:.7rem; }

/* CHECKLIST */
.cl-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:2rem; }
.cl-card { background:#fff; border:.5px solid var(--bo); border-radius:3px; padding:1.8rem; }
.cl-card h3 { font-family:var(--fd); font-size:1rem; color:var(--tc); margin-bottom:1rem; }
.cl-card ul { list-style:none; }
.cl-card ul li { font-family:var(--fb); font-size:.96rem; padding:.4rem 0; border-bottom:.5px solid var(--bo); color:var(--bc); display:flex; gap:.6rem; }
.cl-card ul li::before { content:'CB'; color:var(--tc); flex-shrink:0; margin-top:2px; }
.cl-card ul li:last-child { border-bottom:none; }

/* FAQ */
.faq-item { border-bottom:.5px solid var(--bo); }
.faq-q { width:100%; background:none; border:none; text-align:left; padding:1.1rem 0; font-family:var(--fd); font-size:1rem; font-weight:500; color:var(--dark); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq-q:hover { color:var(--tc); }
.faq-plus { font-size:1.2rem; flex-shrink:0; color:var(--tc); transition:transform .3s; }
.faq-item.open .faq-plus { transform:rotate(45deg); }
.faq-a { display:none; padding:0 0 1.1rem; font-size:1rem; color:var(--bc); line-height:1.82; }
.faq-item.open .faq-a { display:block; }

/* FILTER */
.filter-bar { display:flex; gap:.85rem; flex-wrap:wrap; justify-content:center; margin-bottom:3rem; }
.fb { font-family:var(--fu); font-size:.68rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; background:transparent; border:.5px solid var(--bo); color:var(--mu); padding:.58rem 1.4rem; border-radius:50px; cursor:pointer; transition:all .2s; }
.fb:hover,.fb.on { background:var(--tc); border-color:var(--tc); color:#fff; }

/* CONTACT */
.con-grid { display:grid; grid-template-columns:1fr 1.8fr; gap:4rem; margin-top:2.5rem; }
.fg { margin-bottom:1.35rem; }
.fg label { display:block; font-family:var(--fu); font-size:.67rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--dark); margin-bottom:.45rem; }
.fg input,.fg select,.fg textarea { width:100%; padding:.8rem 1rem; border:.5px solid var(--bo); border-radius:2px; font-family:var(--fb); font-size:1rem; color:var(--dark); background:#fff; transition:border-color .2s; outline:none; -webkit-appearance:none; appearance:none; }
.fg input:focus,.fg select:focus,.fg textarea:focus { border-color:var(--tc); }
.fg textarea { resize:vertical; min-height:130px; }
.fr { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* RESPONSIVE */
@media (max-width:1024px) {
  .nl,.ncta { display:none !important; }
  .hbg { display:flex; }
  .two { grid-template-columns:1fr; gap:2.5rem; }
  .grid3,.exp-grid,.blog-grid,.cl-grid { grid-template-columns:1fr 1fr; }
  .ft-grid { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .ft-brand { grid-column:1/-1; }
  .con-grid { grid-template-columns:1fr; }
  .strip-row { grid-template-columns:repeat(3,1fr); }
  .si:nth-child(3) { border-right:none; }
  .gal-row { grid-template-columns:repeat(3,1fr); }
  .gal-card:nth-child(4),.gal-card:nth-child(5) { display:none; }
}
@media (max-width:680px) {
  .grid3,.exp-grid,.blog-grid,.cl-grid { grid-template-columns:1fr; }
  .ft-grid { grid-template-columns:1fr; }
  .ft-bt { flex-direction:column; gap:1rem; text-align:center; }
  .cta-row { flex-direction:column; text-align:center; }
  .fr { grid-template-columns:1fr; }
  .strip-row { grid-template-columns:repeat(2,1fr); }
  .si { border-right:none; border-bottom:.5px solid #E8E0D5; }
  .gal-row { grid-template-columns:1fr 1fr; }
  .gal-card:nth-child(4) { display:block; }
  .gal-card:nth-child(5) { display:none; }
  .hero-sub { max-width:100%; }
}
