:root{
  --ivory: #F7F4EE;
  --ivory-2: #EFEAE0;
  --ink: #1C1A17;
  --ink-soft: #47423B;
  --sand: #C9BFA9;
  --gold: #E8862A;
  --gold-soft: #F2A73A;
  --forest: #123F37;
  --forest-2: #1B5245;
  --crimson: #B93526;
  --line: rgba(28,26,23,0.14);
  --serif: 'Fraunces', serif;
  --sans: 'Inter', sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px;}

/* -------- NAV -------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(247,244,238,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 40px;
  max-width:1180px; margin:0 auto;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{width:38px;height:38px;object-fit:contain;flex-shrink:0;}
.brand-text{font-family:var(--serif); font-size:18px; font-weight:500; letter-spacing:0.01em; line-height:1.1;}
.brand-text span{display:block; font-family:var(--sans); font-size:10px; color:var(--ink-soft); letter-spacing:0.14em; margin-top:2px;}
nav.links{display:flex; gap:36px; font-size:14.5px;}
nav.links a{padding:6px 0; border-bottom:1px solid transparent; transition:border-color .2s ease;}
nav.links a:hover, nav.links a.active{border-color:var(--gold);}
.nav-cta{
  font-size:14px; padding:10px 22px; border:1px solid var(--ink); border-radius:2px;
  transition:background .2s ease, color .2s ease;
}
.nav-cta:hover{background:var(--ink); color:var(--ivory);}

/* -------- HERO -------- */
.hero{
  padding:110px 40px 100px;
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:60px; align-items:center;
}
.hero-eyebrow{
  font-size:13px; color:var(--gold); letter-spacing:0.06em; margin-bottom:22px;
}
h1.hero-title{
  font-family:var(--serif); font-weight:400; font-size:clamp(40px, 5.2vw, 68px);
  line-height:1.06; margin:0 0 26px; letter-spacing:-0.01em;
}
.hero-title em{font-style:italic; color:var(--gold);}
.hero-sub{
  font-size:17px; line-height:1.65; color:var(--ink-soft); max-width:480px; margin-bottom:34px;
}
.hero-actions{display:flex; gap:16px; align-items:center;}
.btn-primary{
  background:var(--ink); color:var(--ivory); padding:14px 28px; font-size:14.5px;
  border-radius:2px; display:inline-block; transition:background .2s ease;
}
.btn-primary:hover{background:var(--gold);}
.btn-ghost{font-size:14.5px; border-bottom:1px solid var(--ink); padding-bottom:2px;}

.hero-mark{
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.hero-mark img{width:100%; max-width:280px; height:auto; display:block;}
.hero-mark-ring{
  position:absolute; inset:0; border:1px solid var(--line); border-radius:50%;
  margin:auto; width:88%; height:88%;
}

/* -------- PAGE HEADER (for inner pages) -------- */
.page-header{padding:70px 40px 20px; max-width:1180px; margin:0 auto;}
.page-header .kicker{margin-bottom:14px;}
.page-header h1{
  font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.2vw,52px);
  line-height:1.1; margin:0; max-width:700px;
}

/* -------- SECTION HEADS -------- */
.section{padding:80px 40px;}
.section.alt{background:var(--ivory-2);}
.section-inner{max-width:1180px; margin:0 auto;}
.kicker{font-size:13px; color:var(--gold); letter-spacing:0.06em; margin-bottom:16px;}
h2.section-title{
  font-family:var(--serif); font-weight:400; font-size:clamp(30px,3.4vw,42px);
  line-height:1.15; margin:0; max-width:600px;
}

/* -------- HOME TEASER LINKS -------- */
.page-links{margin-top:0; display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line);}
.page-link-card{
  background:var(--ivory); padding:36px 28px; transition:background .2s ease;
}
.page-link-card:hover{background:var(--ivory-2);}
.page-link-card h3{font-family:var(--serif); font-weight:400; font-size:22px; margin:0 0 10px;}
.page-link-card p{font-size:14.5px; line-height:1.6; color:var(--ink-soft); margin:0 0 16px;}
.page-link-card span{font-size:13.5px; border-bottom:1px solid var(--ink); padding-bottom:2px;}

/* -------- ABOUT -------- */
.about-grid{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:start; margin-top:56px;
}
.about-panel{
  aspect-ratio:4/5; background:linear-gradient(160deg, var(--forest) 0%, var(--forest-2) 100%);
  border-radius:2px; position:relative; overflow:hidden;
}
.about-panel img{position:absolute; inset:0; width:55%; height:55%; margin:auto; object-fit:contain;}
.about-text p{font-size:16.5px; line-height:1.75; color:var(--ink-soft); margin:0 0 20px;}
.about-text p:first-child{font-size:20px; color:var(--ink); font-family:var(--serif); line-height:1.5;}

/* -------- SERVICES -------- */
.service-row{
  border-top:1px solid var(--line);
  padding:38px 0;
  display:grid; grid-template-columns:1fr 1.6fr; gap:40px; align-items:baseline;
}
.service-row:last-child{border-bottom:1px solid var(--line);}
.service-name{font-family:var(--serif); font-size:26px; font-weight:400;}
.service-desc{font-size:15.5px; line-height:1.7; color:var(--ink-soft); max-width:560px;}

/* -------- PROCESS -------- */
.process-list{margin-top:56px; display:grid; grid-template-columns:repeat(4,1fr); gap:36px;}
.process-step{border-top:1px solid var(--ink); padding-top:18px;}
.process-num{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:15px; margin-bottom:14px; display:block;}
.process-step h3{font-size:17px; font-weight:500; margin:0 0 10px;}
.process-step p{font-size:14.5px; line-height:1.65; color:var(--ink-soft); margin:0;}

/* -------- EVENTS STRIP -------- */
.events-strip{margin-top:56px; display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line);}
.event-tile{
  aspect-ratio:3/4; display:flex; align-items:flex-end; padding:22px;
  font-family:var(--serif); font-size:16px; color:var(--ivory);
  background-size:cover; background-position:center;
}
.event-tile span{position:relative; z-index:1;}
.t1{background-image:linear-gradient(200deg,rgba(10,15,13,.85) 0%,rgba(10,15,13,.15) 65%),url('https://images.unsplash.com/photo-1719223852076-6981754ebf76?fm=jpg&q=70&w=900&auto=format&fit=crop');}
.t2{background-image:linear-gradient(200deg,rgba(20,10,8,.85) 0%,rgba(20,10,8,.15) 65%),url('https://images.unsplash.com/photo-1762765685348-4bced247d12c?fm=jpg&q=70&w=900&auto=format&fit=crop');}
.t3{background-image:linear-gradient(200deg,rgba(10,15,13,.85) 0%,rgba(10,15,13,.15) 65%),url('https://images.unsplash.com/photo-1763964062626-063ceec3100a?fm=jpg&q=70&w=900&auto=format&fit=crop');}
.t4{background-image:linear-gradient(200deg,rgba(25,16,4,.85) 0%,rgba(25,16,4,.15) 65%),url('https://images.unsplash.com/photo-1621857584544-9e3d52a650df?fm=jpg&q=70&w=900&auto=format&fit=crop');}
.t5{background-image:linear-gradient(200deg,rgba(8,8,8,.85) 0%,rgba(8,8,8,.15) 65%),url('https://images.unsplash.com/photo-1658843262341-c8c6a666564b?fm=jpg&q=70&w=900&auto=format&fit=crop');}
.t6{background-image:linear-gradient(200deg,rgba(20,10,8,.85) 0%,rgba(20,10,8,.15) 65%),url('https://images.unsplash.com/photo-1746190597308-610db7efd4af?fm=jpg&q=70&w=900&auto=format&fit=crop');}
.t7{background-image:linear-gradient(200deg,rgba(10,12,20,.85) 0%,rgba(10,12,20,.15) 65%),url('https://images.unsplash.com/photo-1549452026-91574599e7f6?fm=jpg&q=70&w=900&auto=format&fit=crop');}
.t8{background-image:linear-gradient(200deg,rgba(8,10,10,.85) 0%,rgba(8,10,10,.15) 65%),url('https://images.unsplash.com/photo-1579859684688-f49e636582d6?fm=jpg&q=70&w=900&auto=format&fit=crop');}

/* -------- CONTACT -------- */
.contact{background:var(--forest); color:var(--ivory);}
.contact .kicker{color:var(--gold-soft);}
.contact h2.section-title, .contact h1{color:var(--ivory);}
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; margin-top:56px;}
.contact-info p{font-size:16px; line-height:1.75; color:#C9C4B9; max-width:400px;}
.contact-detail{margin-top:30px; font-size:14.5px; color:#C9C4B9; line-height:2;}
.contact-detail strong{color:var(--ivory); font-weight:500; display:block; font-family:var(--serif); font-size:15px;}

form{display:grid; gap:20px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
label{font-size:12.5px; letter-spacing:0.04em; color:#C9C4B9; display:block; margin-bottom:8px;}
input, select, textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(247,244,238,0.28);
  color:var(--ivory); font-family:var(--sans); font-size:15px; padding:8px 0;
}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--gold-soft);}
select option{color:#1C1A17;}
textarea{resize:vertical; min-height:70px;}
.submit-btn{
  justify-self:start; margin-top:6px; background:var(--gold-soft); color:var(--ink);
  padding:14px 30px; font-size:14.5px; border:none; border-radius:2px; cursor:pointer;
  transition:background .2s ease;
}
.submit-btn:hover{background:var(--ivory);}

/* -------- FOOTER -------- */
footer{padding:50px 40px; border-top:1px solid var(--line);}
.footer-inner{
  max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:20px;
}
.footer-brand{font-family:var(--serif); font-size:15px;}
.footer-links{display:flex; gap:28px; font-size:13.5px; color:var(--ink-soft);}
.footer-copy{font-size:12.5px; color:var(--ink-soft);}

@media (max-width: 860px){
  .wrap, .nav, .hero, .section, .section-inner, .page-header{padding-left:24px; padding-right:24px;}
  nav.links{display:none;}
  .hero{grid-template-columns:1fr; padding-top:70px; padding-bottom:60px; gap:40px;}
  .hero-mark{order:-1; max-width:220px; margin:0 auto;}
  .about-grid, .contact-grid{grid-template-columns:1fr; gap:36px;}
  .service-row{grid-template-columns:1fr; gap:14px;}
  .process-list{grid-template-columns:1fr 1fr; gap:28px;}
  .events-strip{grid-template-columns:1fr 1fr;}
  .page-links{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
  .footer-inner{flex-direction:column; align-items:flex-start;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
