@import url('https://cdn.jsdelivr.net/npm/@fontsource/satisfy/index.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/cormorant-garamond/index.css');

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --nude:#F2E8DC;
  --taupe:#BFA08A;
  --espresso:#2B1A10;
  --olive:#4A5E28;
  --sand:#E8D5C4;
  --body:#2B1A10;
}
html{scroll-behavior:smooth;}
body{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;background:var(--nude);color:var(--espresso);font-size:18px;line-height:1.75;}

/* NAV */
nav{position:sticky;top:0;z-index:100;background:var(--nude);border-bottom:1px solid var(--taupe);padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between;}
.nav-logo{font-family:'Satisfy',cursive;font-size:26px;color:var(--espresso);text-decoration:none;}
.nav-links{display:flex;align-items:center;gap:2rem;}
.nav-links a{font-size:14px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;color:var(--espresso);font-weight:600;}
.nav-links a.active{color:var(--olive);}
.nav-cta{background:var(--olive);color:#fff !important;padding:9px 22px;border-radius:4px;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:600;}

/* LAYOUT */
.section{padding:5rem 2rem;}
.section-sand{background:var(--sand);}
.section-espresso{background:var(--espresso);}
.section-white{background:#fff;}
.container{max-width:1080px;margin:0 auto;}
.text-center{text-align:center;}

/* TWO COL */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.two-col img{width:100%;height:460px;object-fit:cover;}

/* TYPOGRAPHY */
.eyebrow{display:block;font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--olive);margin-bottom:0.6rem;font-weight:700;}
.eyebrow-light{color:var(--taupe);}
h1.script{font-family:'Satisfy',cursive;font-size:72px;color:var(--espresso);line-height:1.0;margin-bottom:1rem;}
h1.script-light{color:#fff;}
h2.serif{font-size:40px;font-style:italic;color:var(--espresso);margin-bottom:1rem;}
h2.serif-light{color:var(--nude);}
h3.serif{font-size:22px;font-style:italic;color:var(--espresso);margin-bottom:0.5rem;}
p.body{font-size:18px;color:var(--espresso);line-height:1.75;margin-bottom:1rem;font-weight:500;}
p.body-light{color:rgba(242,232,220,0.8);}

/* BUTTONS */
.btn{display:inline-block;padding:12px 28px;border-radius:4px;font-size:13px;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;}
.btn-pink{background:var(--olive);color:#fff;}
.btn-dark{background:var(--espresso);color:var(--nude);}
.btn-outline{background:transparent;color:var(--espresso);border:1px solid var(--espresso);}
.btn-outline-light{background:transparent;color:var(--nude);border:1px solid var(--nude);}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap;}

/* CARDS */
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.5rem;}
.card-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem;}
.card-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.5rem;}
.card{background:#fff;border:1px solid var(--taupe);padding:1.75rem;}
.card-sand{background:var(--sand);border:1px solid var(--taupe);padding:1.75rem;}
.card p{font-size:17px;color:var(--espresso);line-height:1.75;margin-bottom:1rem;font-weight:500;}
.card-link{font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--olive);text-decoration:none;font-weight:700;}

/* PHOTO GRID */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;margin-top:2rem;}
.photo-grid img{width:100%;height:280px;object-fit:cover;display:block;}
.photo-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:0.75rem;margin-top:2rem;}
.photo-grid-4 img{width:100%;height:220px;object-fit:cover;display:block;}

/* DIVIDER */
.divider{height:1px;background:var(--taupe);opacity:0.4;margin:1.5rem 0;}

/* PROCESS STEPS */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2.5rem;text-align:center;}
.step-num{width:48px;height:48px;border-radius:50%;background:var(--olive);color:#fff;font-family:'Satisfy',cursive;font-size:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 0.75rem;}
.step h4{font-size:15px;font-style:italic;color:var(--nude);margin-bottom:0.3rem;}
.step p{font-size:12px;color:rgba(242,232,220,0.65);line-height:1.5;}

/* FORM */
.form-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;margin-top:2.5rem;align-items:start;}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-group{margin-bottom:1rem;}
.form-group label{display:block;font-size:14px;letter-spacing:0.12em;text-transform:uppercase;color:var(--body);margin-bottom:5px;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:13px 15px;border:1px solid var(--taupe);background:#fff;font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;font-weight:500;color:var(--espresso);outline:none;-webkit-appearance:none;}
.form-group textarea{height:130px;resize:vertical;}
.submit-btn{background:var(--olive);color:#fff;width:100%;padding:15px;border:none;font-size:16px;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;margin-top:0.5rem;}

/* CONTACT INFO */
.contact-info-card{background:var(--sand);padding:2rem;border:1px solid var(--taupe);}
.contact-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:1rem;font-size:18px;color:var(--espresso);}
.contact-row a{color:var(--olive);text-decoration:none;}

/* LIST */
.check-list{list-style:none;margin:0.75rem 0 1rem;}
.check-list li{font-size:17px;color:var(--espresso);padding:5px 0;display:flex;gap:8px;align-items:flex-start;line-height:1.5;font-weight:500;}
.check-list li::before{content:'—';color:var(--olive);flex-shrink:0;}

/* FOOTER */
footer{background:var(--espresso);padding:3.5rem 2rem 2rem;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem;max-width:1080px;margin:0 auto 2.5rem;}
.footer-brand{font-family:'Satisfy',cursive;font-size:28px;color:var(--nude);margin-bottom:0.5rem;}
.footer-tagline{font-size:13px;color:rgba(242,232,220,0.7);font-style:italic;}
.footer-col h4{font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--taupe);margin-bottom:0.9rem;}
.footer-col a{display:block;font-size:14px;color:rgba(242,232,220,0.82);text-decoration:none;margin-bottom:0.4rem;font-weight:500;}
.footer-col a:hover{color:var(--nude);}
.footer-bottom{border-top:1px solid rgba(191,160,138,0.2);padding-top:1.25rem;text-align:center;font-size:12px;color:rgba(242,232,220,0.3);max-width:1080px;margin:0 auto;}

/* HERO */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;}
.hero-overlay{position:absolute;inset:0;background:rgba(43,26,16,0.68);}
.hero-content{position:relative;z-index:2;padding:2rem;max-width:760px;}
.hero-content p{font-size:17px;color:rgba(255,255,255,0.85);font-style:italic;max-width:540px;margin:0 auto 2rem;}

/* PAGE HERO */
.page-hero{background:var(--sand);padding:5rem 2rem 4rem;text-align:center;border-bottom:1px solid var(--taupe);}
.page-hero p{font-size:19px;color:var(--espresso);font-style:italic;max-width:520px;margin:0 auto;font-weight:500;}

/* QUOTE */
.quote-text{font-size:17px;font-style:italic;color:var(--espresso);line-height:1.8;margin-bottom:0.75rem;}
.quote-author{font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--olive);}

/* CTA BANNER */
.cta-banner{background:var(--espresso);padding:6rem 2rem;text-align:center;}
.cta-banner p{font-size:17px;color:rgba(242,232,220,0.88);font-style:italic;margin-bottom:2rem;}

/* HAMBURGER */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none;}
.hamburger span{display:block;width:22px;height:2px;background:var(--espresso);}
.mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:var(--nude);border-bottom:1px solid var(--taupe);padding:0.5rem 1.5rem;z-index:99;flex-direction:column;}
.mobile-menu a{display:block;font-size:15px;letter-spacing:0.06em;text-transform:uppercase;text-decoration:none;color:var(--espresso);padding:0.85rem 0;border-bottom:1px solid rgba(191,160,138,0.3);font-weight:600;}
.mobile-menu a.mobile-cta{color:var(--olive);border-bottom:none;}
.mobile-menu.open{display:flex;}

/* TABLET */
@media(max-width:900px){
  nav .nav-links a:not(.nav-cta){display:none;}
  .nav-cta{display:none;}
  .hamburger{display:flex;}
  .two-col{grid-template-columns:1fr;}
  .two-col img{height:320px;}
  .card-grid{grid-template-columns:1fr 1fr;}
  .card-grid-3{grid-template-columns:1fr 1fr;}
  .card-grid-2{grid-template-columns:1fr 1fr;}
  .steps{grid-template-columns:1fr 1fr;gap:1.5rem;}
  .form-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .photo-grid{grid-template-columns:1fr 1fr;}
  .photo-grid-4{grid-template-columns:1fr 1fr;}
  h1.script{font-size:54px;}
  h2.serif{font-size:34px;}
  .section{padding:4rem 1.5rem;}
  .page-hero{padding:4rem 1.5rem 3rem;}
  .cta-banner{padding:4rem 1.5rem;}
}

/* MOBILE */
@media(max-width:600px){
  nav{padding:0 1.25rem;}
  .nav-logo{font-size:22px;}
  .section{padding:3rem 1.25rem;}
  .page-hero{padding:3rem 1.25rem 2.5rem;}
  .cta-banner{padding:3.5rem 1.25rem;}
  h1.script{font-size:40px;}
  h2.serif{font-size:26px;}
  h3.serif{font-size:19px;}
  .hero{min-height:75vh;}
  .hero-content{padding:1.25rem;}
  .hero-content p{font-size:15px;}
  .btn-row{flex-direction:column;align-items:stretch;text-align:center;}
  .btn{text-align:center;}
  .card-grid{grid-template-columns:1fr;}
  .card-grid-3{grid-template-columns:1fr;}
  .card-grid-2{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;}
  .photo-grid{grid-template-columns:1fr;}
  .photo-grid img{height:240px;}
  .photo-grid-4{grid-template-columns:1fr 1fr;}
  .photo-grid-4 img{height:150px;}
  .form-row-2{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-brand{font-size:24px;}
  .two-col img{height:260px;}
}
