:root{
  --paper: #F8F5EF;
  --paper-deep: #F1ECE2;
  --ink: #1D2B36;
  --ink-70: rgba(29,43,54,.7);
  --ink-55: rgba(29,43,54,.55);
  --line: rgba(29,43,54,.13);
  --clay: #B5673F;
  --clay-deep: #98502F;
  --cloud: #FFFFFF;
  --display: "Fraunces", "Iowan Old Style", serif;
  --body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --container: 1120px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); line-height:1.6; -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--display); font-weight:500; line-height:1.12; margin:0 0 .45em; letter-spacing:-.01em; }
p{ margin:0 0 1em; color:var(--ink-70); }
.container{ max-width:var(--container); margin:0 auto; padding:0 32px; }
section{ padding:110px 0; }
@media (max-width:760px){ section{ padding:64px 0; } .container{ padding:0 22px; } }

h1{ font-size:clamp(36px,4.6vw,56px); }
h2{ font-size:clamp(26px,3vw,36px); }
.lede{ font-size:18.5px; color:var(--ink-70); max-width:520px; }

.eyebrow{
  font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--clay-deep); font-weight:600; margin-bottom:16px;
}

.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--body); font-weight:600; font-size:15px;
  padding:14px 28px; border-radius:3px; border:1px solid transparent;
  cursor:pointer; transition:all .2s ease; background:none;
}
.btn-primary{ background:var(--ink); color:var(--paper); }
.btn-primary:hover{ background:var(--clay-deep); transform:translateY(-1px); }
.btn-outline{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--paper); }

/* nav */
header{ position:sticky; top:0; z-index:40; background:rgba(248,245,239,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:22px 0; }
.brand{ font-family:var(--display); font-size:21px; font-weight:600; letter-spacing:-.01em; }
.brand span{ color:var(--clay); }
.nav-links{ display:flex; gap:38px; list-style:none; margin:0; padding:0; }
.nav-links a{ font-size:14px; font-weight:500; color:var(--ink-70); }
.nav-links a:hover, .nav-links a.active{ color:var(--ink); }
.nav-right{ display:flex; align-items:center; gap:22px; }
@media (max-width:780px){
  .nav-links{ display:none; }
  .nav-right .btn{ padding:10px 18px; font-size:13.5px; }
}

/* hero */
.hero{ padding-top:76px; padding-bottom:90px; }
.hero-grid{ display:grid; grid-template-columns:1fr .92fr; gap:64px; align-items:center; }
.hero-photo{ position:relative; }
.hero-photo img{ border-radius:4px; box-shadow:0 40px 80px -30px rgba(29,43,54,.35); }
.hero-photo::after{
  content:""; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--line); border-radius:4px; z-index:-1;
}
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } .hero-photo::after{ display:none; } }

/* proof strip */
.proof{ background:var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.proof-inner{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px; align-items:center; }
.proof-copy p{ font-size:15px; margin-bottom:0; }
.proof-photos{ display:contents; }
.proof-photos img{ border-radius:3px; box-shadow:0 18px 40px -18px rgba(29,43,54,.3); }
@media (max-width:820px){
  .proof-inner{ grid-template-columns:1fr; }
  .proof-photos{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
}

/* functions row (4-col) */
.func-head{ max-width:600px; margin-bottom:60px; }
.func-row{ display:grid; grid-template-columns:repeat(4,1fr); }
.func{ padding:0 26px 0 0; border-left:1px solid var(--line); padding-left:26px; }
.func:first-child{ border-left:none; padding-left:0; }
.func-num{ font-family:var(--display); font-size:15px; color:var(--clay-deep); margin-bottom:14px; }
.func h3{ font-size:18px; margin-bottom:8px; }
.func p{ font-size:14.5px; }
@media (max-width:860px){
  .func-row{ grid-template-columns:1fr 1fr; row-gap:36px; }
  .func:nth-child(3){ border-left:none; padding-left:0; }
}
@media (max-width:560px){
  .func-row{ grid-template-columns:1fr; }
  .func{ border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:26px; }
  .func:first-child{ border-top:none; padding-top:0; }
}

/* 3-col feature grid (product detail page) */
.feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:44px 40px; }
.feat{ }
.feat-num{ font-family:var(--display); font-size:15px; color:var(--clay-deep); margin-bottom:14px; }
.feat h3{ font-size:18px; margin-bottom:8px; }
.feat p{ font-size:14.5px; margin-bottom:0; }
@media (max-width:860px){ .feat-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .feat-grid{ grid-template-columns:1fr; } }

/* product (dark) */
.product{ background:var(--ink); color:var(--paper); }
.product .eyebrow{ color:#C99873; }
.product h2{ color:var(--paper); }
.product p{ color:rgba(248,245,239,.72); }
.product-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center; }
.product-photo img{ border-radius:4px; }
.product-list{ margin-top:28px; display:flex; flex-direction:column; gap:0; }
.product-list li{ list-style:none; display:flex; gap:14px; padding:16px 0; border-top:1px solid rgba(248,245,239,.14); font-size:14.5px; color:rgba(248,245,239,.85); }
.product-list li:last-child{ border-bottom:1px solid rgba(248,245,239,.14); }
.product-list b{ color:var(--paper); font-weight:600; min-width:130px; }
@media (max-width:860px){ .product-grid{ grid-template-columns:1fr; } }

/* hotel value */
.value-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:56px; }
.value-num{ font-family:var(--display); font-size:34px; color:var(--clay); margin-bottom:16px; }
.value h3{ font-size:19px; margin-bottom:10px; }
.value p{ font-size:15px; }
@media (max-width:760px){ .value-grid{ grid-template-columns:1fr; gap:36px; } }

/* partnership options */
.partner-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:56px; }
.partner-card{ background:var(--cloud); border:1px solid var(--line); border-radius:6px; padding:40px; }
.partner-card.dark{ background:var(--ink); border-color:var(--ink); }
.partner-card.dark h3, .partner-card.dark .eyebrow{ color:var(--paper); }
.partner-card.dark .eyebrow{ color:#C99873; }
.partner-card.dark p{ color:rgba(248,245,239,.72); }
.partner-card h3{ font-size:22px; margin-bottom:12px; }
.partner-list{ margin-top:22px; display:flex; flex-direction:column; gap:0; }
.partner-list li{ list-style:none; padding:12px 0; border-top:1px solid var(--line); font-size:14.5px; }
.partner-card.dark .partner-list li{ border-top:1px solid rgba(248,245,239,.14); color:rgba(248,245,239,.85); }
.partner-list li:first-child{ border-top:none; }
@media (max-width:760px){ .partner-grid{ grid-template-columns:1fr; } }

/* contact form */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:flex-start; }
.form-field{ margin-bottom:20px; }
.form-field label{ display:block; font-size:13px; font-weight:600; margin-bottom:7px; color:var(--ink-70); }
.form-field input, .form-field textarea{
  width:100%; padding:13px 15px; border:1px solid var(--line); border-radius:3px;
  font-family:var(--body); font-size:14.5px; background:var(--cloud); color:var(--ink);
}
.form-field input:focus, .form-field textarea:focus{ outline:none; border-color:var(--ink); }
.form-field textarea{ resize:vertical; }
.contact-side{ padding-top:6px; }
.contact-side .eyebrow{ margin-bottom:14px; }

footer{ padding:56px 0 40px; }
.footer-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; }
.footer-brand{ font-family:var(--display); font-size:19px; margin-bottom:8px; }
.footer-contact{ display:flex; gap:28px; flex-wrap:wrap; font-size:14px; }
.footer-contact a{ color:var(--ink-70); }
.footer-contact a:hover{ color:var(--ink); }
.footer-bottom{ margin-top:40px; padding-top:22px; border-top:1px solid var(--line); font-size:12.5px; color:var(--ink-55); }

.cta{ background:var(--paper-deep); border-top:1px solid var(--line); }
.cta-inner{ text-align:center; max-width:640px; margin:0 auto; }

.fade-up{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.fade-up.in{ opacity:1; transform:translateY(0); }

/* simple page header (product page) */
.page-head{ padding-top:70px; padding-bottom:20px; }
.back-link{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; color:var(--ink-55); margin-bottom:26px; }
.back-link:hover{ color:var(--ink); }
