@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=Montserrat:wght@400;500;600&display=swap');

:root {
  --ink: #111111;
  --paper: #f4f2ed;
  --paper-2: #e9e7e2;
  --green: #143c2b;
  --green-2: #294a3b;
  --red: #b51622;
  --white: #ffffff;
  --muted: #6f6d67;
  --shadow: 0 12px 28px rgba(0,0,0,.10);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "Montserrat", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }

.container { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.container-wide { width: min(1320px, calc(100% - 48px)); margin: 0 auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(17,17,17,.08);
  backdrop-filter: blur(10px);
}
.header-inner {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.brand-logo { width: 92px; height: 62px; object-fit: contain; }
.primary-nav { display: flex; align-items: center; gap: 30px; font-size: 14px; font-weight: 500; }
.primary-nav > a, .nav-trigger { position: relative; padding: 30px 0 27px; white-space: nowrap; }
.primary-nav > a::after, .nav-trigger::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 22px;
  width: 0;
  height: 1px;
  background: var(--red);
  transition: width .2s ease;
}
.primary-nav > a:hover::after, .primary-nav > a.active::after, .nav-dropdown:hover .nav-trigger::after,
.nav-dropdown.active .nav-trigger::after { width: 100%; }
.primary-nav > a.active, .nav-dropdown.active .nav-trigger { color: var(--red); }
.nav-dropdown { position: relative; }
.nav-trigger { cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.nav-trigger::before { content: ""; }
.chevron { width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.dropdown-menu {
  position: absolute;
  top: 75px;
  left: 50%;
  min-width: 190px;
  transform: translateX(-50%) translateY(-6px);
  background: #fff;
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  transition: .2s ease;
  padding: 8px 0;
}
.dropdown-menu a { display: block; padding: 13px 24px; font-size: 14px; }
.dropdown-menu a:hover, .dropdown-menu a.active { color: var(--red); background: #f7f5f1; }
.nav-dropdown:hover .dropdown-menu, .nav-dropdown.open .dropdown-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.linkedin-mark { font-size: 26px; font-weight: 600; line-height: 1; }
.mobile-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; }
.mobile-toggle span { display: block; width: 25px; height: 2px; margin: 5px auto; background: #111; transition: .2s; }

.eyebrow { color: var(--red); font-size: 14px; font-weight: 500; margin: 0 0 28px; }
.eyebrow-line { display: inline-flex; align-items: center; gap: 15px; }
.eyebrow-line::before { content: ""; width: 18px; height: 1px; background: var(--red); }
.display { font-family: var(--serif); font-weight: 400; line-height: 1.08; margin: 0; }
.display-xl { font-size: clamp(44px, 5.25vw, 76px); }
.display-lg { font-size: clamp(38px, 4.4vw, 64px); }
.display-md { font-size: clamp(34px, 3.4vw, 52px); }
.heading { font-family: var(--serif); font-weight: 400; line-height: 1.15; margin: 0 0 28px; font-size: clamp(32px, 3.4vw, 52px); }
.lead { font-size: 18px; line-height: 1.8; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 34px;
  border: 1px solid transparent;
  font-size: 14px;
  font-weight: 500;
  transition: transform .2s ease, background .2s ease, color .2s ease, border .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-red { background: var(--red); color: #fff; }
.btn-green { background: var(--green); color: #fff; }
.btn-light { background: var(--paper-2); color: var(--ink); }
.btn-outline { border-color: #111; background: transparent; color: #111; }
.btn-outline:hover { background: #111; color: #fff; }

.home-hero {
  position: relative;
  min-height: 640px;
  display: flex;
  align-items: center;
  background: linear-gradient(90deg, rgba(5,15,10,.68), rgba(5,15,10,.42)), url('../assets/images/home-hero.webp') center/cover no-repeat;
  color: #fff;
}
.hero-content { width: min(1080px, calc(100% - 48px)); margin: 0 auto; }
.home-hero .eyebrow { margin-bottom: 36px; }
.home-hero .display { max-width: 1090px; }
.home-hero .hero-bottom { display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: end; margin-top: 94px; }
.home-hero .hero-copy { max-width: 840px; font-size: 17px; }

.section { padding: 105px 0; }
.section-white { background: #fff; }
.section-paper { background: var(--paper); }
.section-dark { background: #0e0e0e; color: #fff; }
.section-green { background: var(--green); color: #fff; }
.center { text-align: center; }

.about-preview { max-width: 760px; margin: 0 auto; }
.about-preview p { margin: 0 auto 32px; }

.business-intro { display: grid; grid-template-columns: .8fr 1.5fr; gap: 90px; margin-bottom: 75px; align-items: start; }
.business-intro .display { max-width: 430px; }
.business-intro p { margin: 75px 0 0; font-size: 16px; }
.business-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.business-card { background: #f5f4f0; color: #111; padding: 32px 26px 34px; min-height: 262px; border-radius: 7px; }
.business-card .label { color: var(--red); font-size: 13px; margin-bottom: 28px; }
.business-card h3 { font-family: var(--serif); font-weight: 400; font-size: 28px; line-height: 1.15; margin: 0 0 32px; }
.business-card p { margin: 0; font-size: 14px; line-height: 1.7; }

.split-green { display: grid; grid-template-columns: 1.05fr 1fr; gap: 70px; align-items: stretch; }
.split-green .image-wrap { min-height: 570px; overflow: hidden; }
.split-green img { width: 100%; height: 100%; object-fit: cover; }
.split-green .copy { align-self: center; }
.split-green .copy p { font-size: 16px; margin: 0 0 28px; }

.cta-paper { padding: 75px 0 85px; }
.cta-rule { width: 72%; height: 16px; border-radius: 8px; background: var(--red); margin: 0 auto 15px; }
.cta-paper h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(32px,3.4vw,46px); margin: 0 0 32px; }

.site-footer { background: #0e0e0e; color: #f4f2ed; padding: 62px 0 22px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr .9fr 1fr; gap: 65px; }
.footer-rule { width: 52px; height: 3px; background: var(--red); margin-bottom: 20px; }
.footer-brand { font-family: var(--serif); font-size: 32px; line-height: 1.1; margin-bottom: 12px; }
.footer-tagline { color: #c7c5c0; }
.footer-heading { color: var(--red); font-size: 12px; letter-spacing: .24em; text-transform: uppercase; margin-bottom: 15px; }
.footer-links { display: grid; gap: 6px; font-size: 13px; letter-spacing: .15em; text-transform: uppercase; }
.footer-links a:hover { color: var(--red); }
.footer-contact { display: grid; gap: 5px; }
.footer-bottom { border-top: 1px solid #b8b5ad; margin-top: 48px; padding-top: 18px; display: flex; justify-content: space-between; gap: 25px; font-size: 12px; }
.footer-bottom .motto { color: var(--red); letter-spacing: .17em; }
.footer-bottom a { text-decoration: underline; }

.about-hero { min-height: 700px; display: flex; align-items: center; overflow: hidden; position: relative; }
.about-hero::after {
  content: ""; position: absolute; width: 480px; height: 520px; right: 8%; top: 72px; background: #e0ded8; border-radius: 240px 240px 0 0; opacity: .9;
}
.about-hero-content { position: relative; z-index: 1; text-align: center; max-width: 800px; margin: 0 auto; }
.about-hero-content .display { margin-bottom: 90px; }
.about-hero-content p { max-width: 750px; margin: 0 auto; font-size: 17px; }
.philosophy { display: grid; grid-template-columns: .9fr 1.1fr; gap: 0; min-height: 720px; }
.philosophy-copy { padding: 125px max(55px, calc((100vw - 1120px)/2)); padding-right: 80px; background: #dfddd8; display: flex; flex-direction: column; justify-content: center; }
.philosophy-copy p { margin: 0 0 50px; }
.philosophy-image img { width: 100%; height: 100%; object-fit: cover; }
.vision-band { padding: 115px 24px; text-align: center; }
.vision-band .display { margin-bottom: 34px; }
.vision-band .gray-rule { width: min(750px, 75%); height: 18px; border-radius: 6px; background: #706e68; margin: 0 auto 18px; }
.vision-band p { max-width: 760px; margin: 0 auto; font-size: 16px; }
.ecosystem-cta { display: grid; grid-template-columns: 1.5fr auto; gap: 65px; align-items: center; }

.ventures-hero { min-height: 660px; display: flex; align-items: center; text-align: center; color: #fff; background: linear-gradient(rgba(0,0,0,.56),rgba(0,0,0,.56)), url('../assets/images/ventures-hero.webp') center/cover no-repeat; }
.ventures-hero-content { max-width: 820px; margin: 0 auto; }
.ventures-hero .display { margin-bottom: 38px; }
.ventures-hero p { font-size: 17px; margin: 0 auto 36px; }
.ventures-grid-section { padding: 95px 0; }
.ventures-grid-section .heading { text-align: center; margin-bottom: 58px; }
.venture-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; row-gap: 60px; }
.venture-card { background: #f6f5f1; box-shadow: var(--shadow); padding: 0 16px 16px; display: flex; flex-direction: column; }
.venture-card img { width: 100%; height: 255px; object-fit: cover; border-radius: 7px; }
.venture-card h3 { font-family: var(--serif); font-weight: 400; font-size: 31px; line-height: 1.15; margin: 12px 0 24px; }
.venture-card p { font-size: 15px; margin: 0 0 18px; flex: 1; }
.venture-card .btn { width: 100%; }
.ventures-cta { padding: 70px 0 85px; text-align: center; }
.ventures-cta .display { margin-bottom: 25px; }
.ventures-cta p { max-width: 750px; margin: 0 auto 35px; }

.detail-hero { background: #0e0e0e; color: #fff; padding: 105px 0 0; }
.detail-hero-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: 30px; align-items: stretch; min-height: 650px; }
.detail-hero-copy { padding: 120px 30px 70px 0; display: flex; flex-direction: column; justify-content: center; }
.detail-hero-copy .display { margin-bottom: 115px; }
.detail-hero-copy p { max-width: 610px; font-size: 16px; }
.detail-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.detail-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 720px; background: var(--paper); }
.detail-split .image img { width: 100%; height: 100%; object-fit: cover; }
.detail-split .copy { display: flex; flex-direction: column; justify-content: center; padding: 90px max(45px, calc((100vw - 1120px)/2)); padding-left: 70px; }
.detail-split .copy p { margin: 0 0 45px; }
.standards { padding: 85px 0; }
.standards .display { margin-bottom: 48px; }
.standards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.standard-card { background: var(--green-2); padding: 38px 36px; min-height: 390px; box-shadow: var(--shadow); }
.standard-card h3 { font-family: var(--serif); font-size: 29px; font-weight: 400; line-height: 1.15; margin: 0 0 75px; }
.standard-card p { margin: 0; font-size: 15px; }
.requirements { padding: 80px 0 90px; }
.requirements h2 { text-align: center; }
.requirements-row { display: grid; grid-template-columns: 270px 1fr; gap: 20px; align-items: center; max-width: 1060px; margin: 0 auto 30px; }
.requirements-bar { height: 18px; background: var(--red); border-radius: 4px; }
.requirements-row p { margin: 0; line-height: 1.45; }
.requirements .btn { margin-left: 290px; }

.reconstructed-note { display: none; }

.contact-modal { position: fixed; inset: 0; z-index: 300; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(0,0,0,.7); }
.contact-modal.open { display: flex; }
.modal-card { width: min(520px, 100%); background: var(--paper); padding: 42px; position: relative; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.modal-card h2 { font-family: var(--serif); font-size: 40px; font-weight: 400; margin: 0 0 24px; }
.modal-card p { margin: 0 0 12px; }
.modal-close { position: absolute; right: 18px; top: 12px; background: transparent; border: 0; font-size: 32px; cursor: pointer; }
.modal-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 25px; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 920px) {
  .container, .container-wide, .hero-content { width: min(100% - 32px, 1120px); }
  .mobile-toggle { display: block; }
  .primary-nav {
    position: fixed; left: 0; right: 0; top: 77px; background: #fff; padding: 20px 24px 30px; display: none; flex-direction: column; align-items: stretch; gap: 0; box-shadow: var(--shadow); max-height: calc(100vh - 77px); overflow: auto;
  }
  .primary-nav.open { display: flex; }
  .primary-nav > a, .nav-trigger { padding: 13px 0; }
  .primary-nav > a::after, .nav-trigger::after { bottom: 8px; }
  .dropdown-menu { position: static; box-shadow: none; transform: none; opacity: 1; visibility: visible; display: none; padding-left: 18px; }
  .nav-dropdown.open .dropdown-menu { display: block; transform: none; }
  .linkedin-mark { font-size: 22px; }
  .home-hero { min-height: 690px; }
  .home-hero .hero-bottom { grid-template-columns: 1fr; margin-top: 55px; }
  .home-hero .btn { justify-self: start; }
  .business-intro, .split-green, .ecosystem-cta, .detail-hero-grid, .detail-split { grid-template-columns: 1fr; }
  .business-intro { gap: 20px; }
  .business-intro p { margin-top: 0; }
  .business-grid, .venture-cards, .standards-grid { grid-template-columns: 1fr 1fr; }
  .split-green .image-wrap { min-height: 440px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :last-child { grid-column: 1 / -1; }
  .about-hero::after { width: 320px; height: 440px; right: -80px; }
  .philosophy { grid-template-columns: 1fr; }
  .philosophy-copy { padding: 90px 36px; }
  .philosophy-image { height: 550px; }
  .detail-hero { padding-top: 50px; }
  .detail-hero-copy { padding: 80px 0 30px; }
  .detail-hero-copy .display { margin-bottom: 50px; }
  .detail-hero-image { height: 520px; }
  .detail-split .copy { padding: 75px 36px; }
  .detail-split .image { height: 560px; }
  .requirements-row { grid-template-columns: 180px 1fr; }
  .requirements .btn { margin-left: 200px; }
}

@media (max-width: 640px) {
  body { font-size: 15px; }
  .header-inner { min-height: 76px; }
  .brand-logo { width: 76px; height: 52px; }
  .primary-nav { top: 76px; }
  .section { padding: 72px 0; }
  .home-hero { min-height: 720px; background-position: 42% center; }
  .home-hero .display { font-size: 43px; }
  .home-hero .hero-bottom { margin-top: 48px; }
  .business-grid, .venture-cards, .standards-grid { grid-template-columns: 1fr; }
  .business-card { min-height: 0; }
  .split-green .image-wrap { min-height: 360px; }
  .cta-rule { width: 88%; height: 10px; }
  .footer-grid { grid-template-columns: 1fr; gap: 38px; }
  .footer-grid > :last-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .about-hero { min-height: 660px; }
  .about-hero-content .display { margin-bottom: 60px; }
  .about-hero::after { width: 280px; height: 420px; top: 90px; right: -100px; }
  .philosophy-image { height: 430px; }
  .venture-card img { height: 230px; }
  .detail-hero-grid { min-height: 0; }
  .detail-hero-image { height: 430px; }
  .detail-split .image { height: 430px; }
  .standard-card { min-height: 330px; }
  .standard-card h3 { margin-bottom: 45px; }
  .requirements-row { grid-template-columns: 1fr; }
  .requirements-bar { width: 64%; }
  .requirements .btn { margin-left: 0; }
  .modal-actions { grid-template-columns: 1fr; }
}


/* Hospitality page */
.hospitality-hero { min-height: 650px; display:flex; align-items:center; color:#fff; background:linear-gradient(90deg,rgba(4,12,8,.68),rgba(4,12,8,.35)),url('../assets/images/hospitality-hero.png') center/cover no-repeat; }
.hospitality-hero-content { padding:100px 0; }
.hospitality-hero-content .display { max-width:1100px; margin-bottom:80px; }
.hospitality-hero-content > p:not(.eyebrow) { max-width:1080px; margin:0 0 36px; font-size:17px; }
.hospitality-detail { padding:95px 0; }
.hospitality-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:75px; align-items:center; }
.hospitality-detail-image img { width:100%; height:560px; object-fit:cover; }
.hospitality-detail-copy p { margin:0 0 26px; }
.hospitality-formats { padding:100px 0; }
.hospitality-formats .display { max-width:760px; margin-bottom:55px; }
.hospitality-format-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.hospitality-format { background:#171717; min-height:460px; display:grid; grid-template-rows:260px 1fr; }
.hospitality-format img { width:100%; height:100%; object-fit:cover; }
.hospitality-format > div { padding:30px; }
.hospitality-format h3 { font-family:var(--serif); font-size:34px; font-weight:400; margin:0 0 16px; }
.hospitality-format p { margin:0; color:#d6d3cc; }
.hospitality-format-text { grid-column:1/-1; min-height:300px; display:flex; align-items:center; background:var(--green); }
.hospitality-format-text > div { max-width:760px; }
.hospitality-format-text .btn { margin-top:24px; }

/* Education page */
.education-hero { background:#0e0e0e; color:#fff; padding:105px 0 0; }
.education-hero-grid { min-height:650px; display:grid; grid-template-columns:.95fr 1.05fr; gap:35px; align-items:stretch; }
.education-hero-copy { padding:110px 30px 70px 0; display:flex; flex-direction:column; justify-content:center; }
.education-hero-copy .display { margin-bottom:75px; }
.education-hero-copy > p:not(.eyebrow) { margin:0 0 32px; max-width:590px; }
.education-hero-copy .btn { align-self:flex-start; }
.education-hero-image img { width:100%; height:100%; object-fit:cover; }
.education-focus { padding:95px 0; }
.education-focus-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.education-focus-copy p { margin:0 0 30px; }
.education-focus-image img { width:100%; height:500px; object-fit:cover; }

@media (max-width:920px) {
  .hospitality-detail-grid,.education-hero-grid,.education-focus-grid { grid-template-columns:1fr; }
  .hospitality-hero-content .display { margin-bottom:55px; }
  .hospitality-detail-image img,.education-focus-image img { height:440px; }
  .hospitality-format-grid { grid-template-columns:1fr; }
  .hospitality-format-text { grid-column:auto; }
  .education-hero { padding-top:50px; }
  .education-hero-copy { padding:80px 0 30px; }
  .education-hero-copy .display { margin-bottom:45px; }
  .education-hero-image { height:520px; }
}
@media (max-width:640px) {
  .hospitality-hero { min-height:720px; background-position:58% center; }
  .hospitality-hero-content .display { font-size:42px; }
  .hospitality-detail-image img,.education-focus-image img { height:370px; }
  .hospitality-format { min-height:0; }
  .education-hero-image { height:430px; }
}
