@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300; font-display: swap; src: url('fonts/cormorant-garamond-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 300; font-display: swap; src: url('fonts/cormorant-garamond-latin-300-italic.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 400; font-display: swap; src: url('fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url('fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 300; font-display: swap; src: url('fonts/jost-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/jost-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/jost-latin-500-normal.woff2') format('woff2'); }
/* Atlas Reverie: presentation refinements only.
   Original copy, logo artwork, photography and form behavior are retained. */
:root {
  --ink-mid: #57534e;
  --ink-soft: #70675e;
  --bg-rose-deep: #805b4d;
  --rule: #ded6cd;
  --container: 1320px;
}
html { font-size: 16px; scroll-behavior: smooth; }
body { font-size: 16px; }
::selection { background: #ddc8bb; color: #2e2e2e; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #805b4d; outline-offset: 5px;
}
.container { padding-inline: clamp(24px, 5vw, 72px); }
.container-narrow { max-width: 840px; }
.nav { padding: 23px clamp(24px, 5vw, 72px); gap: 24px; }
.nav-links { gap: 34px; font-size: 12px; letter-spacing: .16em; align-items: center; }
.nav-links a { padding-block: 12px; }
.nav-links a:last-child { border: 1px solid #b6a194; padding: 11px 22px; }
.nav-links a.active::after { bottom: 5px; }
.nav-links a:last-child.active::after { display: none; }
.nav-links a:last-child:hover { background: #ece3da; }
.btn, .btn-outline, .ct-submit {
  font-family: var(--sans); font-size: 12px; font-weight: 400;
  letter-spacing: .16em; text-transform: uppercase; line-height: 1.5;
  min-height: 50px; padding: 18px 28px; display: inline-flex;
  align-items: center; justify-content: center; text-align: center;
  transition: background .2s, color .2s, border-color .2s;
}
.btn-outline { border: 1px solid #a88b7b; }
.btn-light { border-color: transparent; }
.body-text, .lede, .memory .body-text, .with-kids p,
.hiw-card p, .jwd-tile p, .exp-card p, .step p.body, .diff-tile p,
.fora-perks li, .intro-text p, .origin .prose p, .journey-content p,
.cat-tile p, .info-block p, .next-card p, .ct-intro, .ct-thanks p,
.rose-cta p, .closing p, .sage-quote p {
  font-size: 16px; line-height: 1.85; font-weight: 400;
}
h1, h2 { text-wrap: balance; }
.page-hero { padding: 86px 0 90px; background: var(--bg-cream); }
.page-hero h1 { font-size: clamp(44px, 5.2vw, 76px); line-height: 1.04; }
.page-hero p.lede { max-width: 650px; margin-top: 26px; }
.home-hero {
  min-height: 740px; padding: 84px clamp(24px, 6vw, 96px);
  justify-content: flex-start; text-align: left;
  background-position: 60% center;
}
.home-hero::before {
  background: linear-gradient(90deg, rgba(13,24,14,.84) 0%, rgba(13,24,14,.67) 32%, rgba(13,24,14,.18) 66%, rgba(13,24,14,.03) 100%);
}
.home-hero .inner { max-width: 610px; }
.home-hero .rule { margin: 30px 0; width: 72px; }
.home-hero h1 { font-size: clamp(42px, 4.25vw, 64px); line-height: 1.06; letter-spacing: -.015em; }
.home-hero h1 br { display: none; }
.home-hero .hero-body { margin: 26px 0 0; max-width: 425px; font-size: 16px; font-weight: 400; line-height: 1.75; color: #f9f6f2; }
.home-hero .btn { margin-top: 30px; background: #f9f6f2; color: #2e2e2e; }
.home-hero .btn:hover { background: #e6d6c8; }
.memory { padding: 110px 0 92px; text-align: left; }
.memory .container-narrow {
  max-width: var(--container); padding-inline: clamp(24px, 5vw, 72px);
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start;
}
.memory h2 { font-size: clamp(34px, 3.25vw, 48px); line-height: 1.14; }
.memory .body-text { margin: 3px 0 0; }
.band-rwandans, .zebra-quote, .golden-band, .zebras-band {
  width: calc(100% - 96px); max-width: 1320px; margin-inline: auto;
  height: auto; aspect-ratio: 16 / 9; padding: 0;
  background-size: cover; background-position: center;
}
.zebras-band { aspect-ratio: 1591 / 894; }
.with-kids { padding: 72px 0 90px; }
.with-kids p { max-width: 670px; }
.how-it-works, .expertise, .next-section { padding: 88px 0; }
.hiw-grid, .exp-grid, .next-grid { gap: 40px; }
.hiw-card, .exp-card, .next-card { border: 0; border-top: 1px solid #bda697; padding: 28px 0 0; background: transparent; }
.hiw-card .num, .next-card .num, .step .num { color: #805b4d; font-size: 48px; line-height: 1; margin-bottom: 26px; }
.hiw-card h3, .next-card h4, .step .step-label { font-size: 13px; letter-spacing: .12em; line-height: 1.65; margin-bottom: 17px; }
.partners-strip { padding: 45px 0; }
.partners { max-width: 1320px; }
.partner-name { font-size: 20px; }
.partner-role { font-size: 10px; letter-spacing: .11em; }
.journeys-we-design, .difference { padding: 96px 0; }
.jwd-grid, .diff-grid { gap: 45px 72px; }
.jwd-tile, .diff-tile { border: 0; border-top: 1px solid #bda697; background: transparent; padding: 27px 0 0; }
.jwd-tile .label { font-family: var(--serif); font-size: 32px; text-transform: none; letter-spacing: 0; line-height: 1.15; color: var(--ink); margin-bottom: 20px; }
.jwd-tile p { max-width: none; }
.testimonials { padding: 90px 0; margin-top: 0; }
.test-grid { gap: 44px; }
.test-card { background: transparent; border: 0; padding: 0 24px 0 0; display: flex; flex-direction: column; }
.test-card + .test-card { border-left: 1px solid var(--rule); padding-left: 32px; }
.test-stars { color: #805b4d; font-size: 12px; margin: 0 0 22px; }
.test-quote { font-family: var(--serif); font-size: 26px; line-height: 1.38; flex: 1; }
.test-name { font-size: 12px; }
.test-place { font-size: 14px; }
.rose-cta { background: #e3d1c5; color: var(--ink); padding: 90px 0; }
.rose-cta h2 { color: var(--ink); font-size: clamp(38px, 4.4vw, 60px); line-height: 1.1; }
.rose-cta p { color: #514740; max-width: 620px; }
.rose-cta .btn { margin-top: 30px; background: #805b4d; color: #fff; }
.rose-cta .btn:hover { background: #634335; }
.intro-split { max-width: 1200px; margin: 0 auto; padding: 0 48px; gap: 72px; grid-template-columns: .85fr 1.15fr; min-height: 0; border: 0; align-items: center; }
.intro-photo { min-height: 0; aspect-ratio: 2/3; background-size: contain; }
.intro-text { padding: 36px 0; background: transparent; }
.intro-text h2, .origin h2, .process h2, .fora-grid h2 { font-size: clamp(34px, 3.3vw, 48px); line-height: 1.13; }
.intro-text p { margin-top: 22px; }
.origin { padding: 100px 0; }
.origin .prose { text-align: left; max-width: 680px; margin-top: 32px; }
.exp-card h3 { font-size: 30px; line-height: 1.2; }
.golden-band { margin-block: 64px; background-size: 100% 100%; }
.process { padding: 90px 0; }
.process-grid { grid-template-columns: repeat(2,1fr); gap: 45px 72px; }
.step { display: grid; grid-template-columns: 54px 1fr; column-gap: 20px; padding-top: 25px; }
.step .num { grid-row: 1 / 3; }
.step .step-label, .step p.body { grid-column: 2; }
.diff-tile { grid-template-columns: 1fr; gap: 0; }
.diff-icon { display: none; }
.diff-tile h4 { font-size: 13px; letter-spacing: .12em; }
.fora-split { padding: 90px 0; }
.fora-grid { gap: 80px; }
.fora-perks li { padding-block: 18px; }
.closing { background: #344239; padding: 90px 0; }
.closing h2 { font-size: clamp(34px, 3.6vw, 50px); line-height: 1.15; }
.closing p { color: #eee9e0; }
.journey-entry { padding: 72px 0; }
.journey-inner { grid-template-columns: 1.12fr 1fr; gap: 64px; }
.journey-inner.reverse { grid-template-columns: 1fr 1.12fr; }
.journey-color-block { height: auto; aspect-ratio: 4/3; }
.journey-color-block[style*='rwanda.jpeg'] { aspect-ratio: 1; }
.journey-content h2 { font-size: clamp(36px, 3.4vw, 50px); line-height: 1.08; }
.journey-content .eyebrow { font-size: 12px; letter-spacing: .14em; color: #805b4d; margin-top: 0; }
.journey-content .j-stays { padding-top: 20px; border-top: 1px solid var(--rule); margin-top: 24px; }
.j-stays .k { font-size: 11px; color: #70675e; }
.journey-content .btn-outline { font-size: 12px; margin-top: 24px; }
.cat-section { padding: 80px 0; }
.cat-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 72px; }
.cat-tile { background: transparent; border: 0; border-top: 1px solid #bda697; padding: 25px 0 0; }
.cat-tile .label { font-size: 13px; letter-spacing: .12em; }
.sage-quote { background: #53604f; padding: 78px 0; }
.sage-quote h2 { font-size: 48px; line-height: 1.15; }
.sage-quote p { color: #f0ede8; }
.ct-main { padding: 76px 0 90px; }
.ct-grid { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 80px; }
.ct-form-col h2 { font-size: 46px; margin-bottom: 32px; }
.ct-info-col { background: #ede7df; padding: 32px; }
.info-block { padding: 0; border: 0; }
.info-block .label { font-size: 12px; }
.info-block h3 { font-size: 34px; }
.info-block a.info-link { font-size: 12px; overflow-wrap: anywhere; }
.form-row { margin-bottom: 0; gap: 22px; }
.form-field { min-width: 0; margin-bottom: 24px; }
.form-field label, .form-row .form-field label { font-size: 12px; letter-spacing: .1em; }
.ct-input, .ct-select, .ct-textarea { background-color: #fffdf9; border: 1px solid #bdb1a4; font-size: 16px; font-weight: 400; padding: 15px; }
.ct-select { padding-right: 36px; }
.ct-input::placeholder, .ct-textarea::placeholder { color: #746e67; font-weight: 400; }
.ct-submit { width: 100%; }
footer.site-footer { padding: 64px clamp(24px, 5vw, 72px) 28px; }
.footer-inner { grid-template-columns: 1.5fr .65fr 1fr 1fr; gap: 40px; }
.footer-inner h5 { font-size: 11px; letter-spacing: .14em; color: #70675e; }
.footer-inner ul li, .ig-row, .footer-blurb { font-size: 14px; }
.footer-blurb { max-width: 285px; }
.footer-bottom { margin-top: 45px; font-size: 10px; text-align: center; }
@media (min-width: 1700px) {
  .home-hero { min-height: 850px; padding-left: max(96px, calc((100vw - 1320px) / 2)); }
}
@media (max-width: 1100px) {
  .journey-inner, .journey-inner.reverse { gap: 36px; }
  .intro-split { gap: 44px; }
  .partners { grid-template-columns: repeat(4,1fr); gap: 28px 0; }
  .partner + .partner::before { display: none; }
  .footer-inner { grid-template-columns: 1.3fr 1fr; gap: 40px; }
  .ct-grid { gap: 36px; }
}
@media (max-width: 980px) and (min-width: 701px) {
  .hiw-grid, .test-grid, .exp-grid, .next-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
  .jwd-grid, .diff-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .journey-inner, .journey-inner.reverse { grid-template-columns: 1fr 1fr; }
  .journey-color-block, .journey-content { order: initial; }
  .intro-split { grid-template-columns: .85fr 1.15fr; }
  .intro-photo { min-height: 0; }
  .ct-grid { grid-template-columns: 1.5fr 1fr; }
  .test-quote { font-size: 23px; }
  .test-card, .test-card + .test-card { padding: 0; border: 0; }
}
@media (max-width: 700px) {
  .nav { justify-content: center; gap: 16px; padding: 20px 20px 12px; }
  .nav-links { width: 100%; justify-content: space-between; gap: 12px; font-size: 11px; letter-spacing: .1em; }
  .nav-links a:last-child { padding: 9px 13px; }
  .home-hero { min-height: 700px; padding: 48px 24px; align-items: flex-end; background-position: 61% center; }
  .home-hero::before { background: linear-gradient(0deg, rgba(13,24,14,.93), rgba(13,24,14,.65) 55%, rgba(13,24,14,.14)); }
  .home-hero .inner { max-width: 500px; }
  .home-hero h1 { font-size: 44px; max-width: 440px; }
  .home-hero .hero-body { font-size: 16px; max-width: 390px; }
  .home-hero .rule { margin-block: 24px; }
  .memory { padding: 64px 0; }
  .memory .container-narrow { grid-template-columns: 1fr; gap: 26px; }
  .memory h2 { font-size: 36px; }
  .band-rwandans, .zebra-quote, .golden-band, .zebras-band { width: calc(100% - 32px); }
  .golden-band { margin-block: 32px; }
  .with-kids, .how-it-works, .expertise, .next-section, .journeys-we-design,
  .difference, .testimonials, .process, .fora-split, .closing, .rose-cta,
  .cat-section, .origin, .ct-main { padding-block: 60px; }
  .page-hero { padding: 58px 0; }
  .page-hero h1 { font-size: 46px; }
  .page-hero p.lede { margin-top: 22px; }
  .container-narrow { padding-inline: 24px; }
  .hiw-grid, .exp-grid, .next-grid, .test-grid, .jwd-grid, .diff-grid, .process-grid, .cat-grid { grid-template-columns: 1fr; gap: 32px; }
  .hiw-card, .next-card { display: grid; grid-template-columns: 44px 1fr; gap: 0 20px; }
  .hiw-card .num, .next-card .num { grid-row: 1/3; font-size: 38px; }
  .hiw-card h3, .hiw-card p:not(.num), .next-card h4, .next-card p:not(.num) { grid-column: 2; }
  .partners { grid-template-columns: 1fr 1fr; gap: 26px 0; padding-inline: 16px; }
  .partner:last-child { grid-column: 1 / -1; }
  .test-card, .test-card + .test-card { border: 0; border-top: 1px solid var(--rule); padding: 28px 0 0; }
  .test-quote { font-size: 27px; }
  .intro-split { padding: 0 24px; grid-template-columns: 1fr; gap: 30px; }
  .intro-photo { width: min(100%, 400px); margin: auto; min-height: 0; }
  .intro-text { padding: 0; }
  .origin .prose { margin-top: 26px; }
  .fora-grid { gap: 24px; }
  .journey-entry { padding-block: 42px; }
  .journey-inner, .journey-inner.reverse { grid-template-columns: 1fr; gap: 28px; }
  .journey-color-block { order: 1; }
  .journey-content { order: 2; }
  .journey-content h2 { font-size: 38px; }
  .sage-quote { padding-block: 60px; }
  .sage-quote h2 { font-size: 38px; }
  .ct-grid { grid-template-columns: 1fr; gap: 40px; }
  .ct-form-col h2 { font-size: 40px; }
  .ct-info-col { padding: 28px; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .footer-inner > :first-child, .footer-inner > :last-child { grid-column: 1 / -1; }
  .footer-blurb { max-width: 360px; }
}
@media (max-width: 380px) {
  .home-hero { padding-inline: 20px; }
  .home-hero h1 { font-size: 39px; }
  .home-hero .logo-full { transform: scale(.9); transform-origin: left center; }
  .form-row { grid-template-columns: 1fr; }
  .nav-links { gap: 8px; letter-spacing: .06em; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
