:root { --paper:#f5f1e9; --cream:#fffdf8; --ink:#202d3e; --body:#49545e; --rust:#b64f31; --rust-hover:#973b23; --sky:#bcd2dd; --line:#d8d3ca; --display:Georgia,"Times New Roman",serif; --sans:Arial,Helvetica,sans-serif; --content:1200px; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:84px; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 1rem/1.65 var(--sans); -webkit-font-smoothing:antialiased; }
::selection { background:#c76f50; color:white; }
:focus-visible { outline:3px solid var(--rust); outline-offset:4px; }
a { color:inherit; text-underline-offset:.2em; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--display); font-weight:400; }
h2 { font-size:clamp(2.7rem,4.35vw,4.25rem); line-height:1.1; letter-spacing:-.025em; text-wrap:balance; }
img { display:block; max-width:100%; }
.wrap { width:min(calc(100% - 2 * clamp(22px,4.5vw,72px)),var(--content)); margin-inline:auto; }
.section { padding-block:clamp(78px,8vw,120px); }
.button { min-height:54px; display:inline-flex; justify-content:center; align-items:center; padding:14px 24px; border-radius:3px; font:700 .875rem/1.2 var(--sans); text-decoration:none; transition:background .2s ease,transform .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--rust); color:white; }
.button-primary:hover { background:var(--rust-hover); }
.text-link { display:inline-flex; align-items:center; gap:10px; padding-block:9px; border-bottom:1px solid currentColor; font-size:.9rem; font-weight:700; line-height:1.2; text-decoration:none; }
.text-link:hover { color:var(--rust); }
.site-header { position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line); background:rgba(245,241,233,.98); }
.header-inner { min-height:76px; display:flex; align-items:center; gap:30px; }
.brand { display:inline-flex; align-items:center; gap:9px; flex:none; font-family:var(--display); font-size:1.6rem; font-weight:700; letter-spacing:-.02em; text-decoration:none; white-space:nowrap; }
.brand-mark { width:29px; height:29px; fill:none; stroke:var(--rust); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.site-header nav { display:flex; gap:30px; margin-left:auto; }
.site-header nav a { min-height:44px; display:inline-flex; align-items:center; font-size:.875rem; font-weight:700; text-decoration:none; }
.site-header nav a:hover,.header-cta:hover { color:var(--rust); }
.header-cta { min-height:44px; display:inline-flex; align-items:center; gap:7px; padding:8px 15px; border:1px solid #a5afb1; font-size:.82rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.hero { display:grid; grid-template-columns:1.06fr .94fr; align-items:center; gap:clamp(36px,5vw,82px); padding-block:72px 78px; }
.hero-copy { min-width:0; }
.hero-mark { color:var(--rust); font-size:2.2rem; line-height:1; }
.hero h1 { max-width:12ch; margin-top:24px; font-size:clamp(3.6rem,6.05vw,6rem); line-height:1.045; letter-spacing:-.03em; text-wrap:balance; }
.hero-copy p { max-width:52ch; margin-top:27px; color:var(--body); font-size:1.125rem; line-height:1.65; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 26px; margin-top:31px; }
.hero-art { position:relative; min-height:535px; overflow:hidden; background:#bcd2dd; }
.hero-sun { position:absolute; width:245px; height:245px; top:38px; right:36px; border-radius:50%; background:#f6d7b9; }
.hero-arch { position:absolute; right:70px; bottom:-67px; width:70%; height:89%; border:33px solid #e6b59b; border-bottom:0; border-radius:48% 48% 0 0; }
.hero-arch-inner { position:absolute; inset:0; border:2px solid rgba(255,253,248,.7); border-bottom:0; border-radius:45% 45% 0 0; }
.hero-lines { position:absolute; inset:0; }
.hero-lines i { position:absolute; width:118%; height:1px; left:-8%; background:rgba(255,253,248,.65); transform:rotate(-25deg); }
.hero-lines i:nth-child(1) { top:46%; }.hero-lines i:nth-child(2) { top:57%; }.hero-lines i:nth-child(3) { top:68%; }
.hero-art > span { position:absolute; left:36px; bottom:29px; color:var(--ink); font-family:var(--display); font-size:clamp(2.5rem,4vw,4rem); line-height:1.02; letter-spacing:-.025em; }
.ribbon { padding-block:13px; background:var(--rust); color:#fff6ee; font-size:.72rem; font-weight:700; letter-spacing:.11em; }
.ribbon .wrap { display:flex; justify-content:center; gap:clamp(18px,4vw,56px); white-space:nowrap; overflow:hidden; }
.ribbon span { font-size:.83rem; }
.section-top { display:grid; grid-template-columns:1fr .8fr; gap:clamp(35px,8vw,110px); align-items:end; margin-bottom:47px; }
.section-top h2 { max-width:12ch; }
.section-top p { max-width:52ch; color:var(--body); font-size:1.0625rem; line-height:1.7; }
.destination-card { display:grid; grid-template-columns:1.05fr .95fr; min-height:480px; background:var(--ink); color:var(--cream); text-decoration:none; }
.destination-card:hover .destination-link { color:#e8ae93; }
.destination-art { display:grid; place-items:center; min-width:0; overflow:hidden; background:#ded4c8; }
.destination-art img { width:min(100%,620px); max-height:470px; object-fit:contain; transition:transform .35s ease; }
.destination-card:hover img { transform:scale(1.035); }
.destination-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(32px,5vw,72px); }
.destination-place { color:#d6b5a7; font-size:.83rem; font-weight:700; }
.destination-copy h3 { margin-top:23px; font-size:clamp(3rem,4.5vw,4.4rem); line-height:1.05; letter-spacing:-.025em; }
.destination-copy p { max-width:43ch; margin-top:23px; color:#dbe2e4; font-size:1.0625rem; line-height:1.65; }
.destination-link { display:inline-flex; gap:12px; margin-top:35px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:.92rem; font-weight:700; }
.approach { background:#e8e3d9; }
.approach-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(50px,9vw,132px); }
.approach-grid h2 { max-width:13ch; }
.approach-grid > div:first-child p { max-width:43ch; margin-top:28px; color:var(--body); font-size:1.0625rem; }
.approach-list { border-top:1px solid #c6c0b7; }
.approach-list article { display:grid; grid-template-columns:48px 1fr; gap:20px; padding:26px 0 29px; border-bottom:1px solid #c6c0b7; }
.approach-list article > span { color:#9e462d; font-size:.82rem; font-weight:700; }
.approach-list h3 { font-size:clamp(1.65rem,2.2vw,2rem); line-height:1.2; }
.approach-list p { max-width:51ch; margin-top:8px; color:var(--body); font-size:1rem; line-height:1.65; }
.closing { background:var(--sky); text-align:center; }
.closing-inner { max-width:850px; }
.closing-symbol { display:block; margin-bottom:21px; color:var(--rust); font-size:2.2rem; line-height:1; }
.closing h2 { max-width:16ch; margin:auto; }
.closing p { max-width:53ch; margin:25px auto 30px; color:#384e5b; font-size:1.0625rem; line-height:1.7; }
.site-footer { padding-block:54px; background:var(--ink); color:var(--cream); }
.footer-inner { display:flex; align-items:end; justify-content:space-between; gap:30px; }
.footer-brand { font-family:var(--display); font-size:1.8rem; font-weight:700; text-decoration:none; }
.footer-inner p { margin-top:10px; color:#cfdbdf; font-size:.875rem; }
.footer-inner > a { padding-block:8px; font-size:.875rem; font-weight:700; text-decoration:none; }
.footer-inner > span { color:#b8c9cf; font-size:.8rem; white-space:nowrap; }
@media (max-width:900px) { .header-cta { display:none; }.hero { grid-template-columns:1fr; gap:36px; }.hero-art { min-height:480px; }.section-top,.approach-grid { grid-template-columns:1fr; gap:25px; }.destination-card { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { html { scroll-padding-top:70px; }.wrap { width:calc(100% - 36px); }.section { padding-block:72px; }.header-inner { min-height:68px; gap:14px; }.brand { font-size:1.35rem; }.brand-mark { width:25px; height:25px; }.site-header nav { gap:18px; }.site-header nav a { font-size:.82rem; }.hero { gap:30px; padding-block:47px 55px; }.hero-mark { font-size:1.65rem; }.hero h1 { margin-top:17px; font-size:clamp(3rem,12vw,3.65rem); }.hero-copy p { margin-top:22px; font-size:1rem; }.hero-actions { align-items:stretch; flex-direction:column; gap:12px; margin-top:24px; }.hero-actions .text-link { align-self:flex-start; }.hero-art { min-height:370px; }.hero-sun { width:190px; height:190px; right:20px; }.hero-arch { right:45px; border-width:23px; }.hero-art > span { left:23px; bottom:20px; font-size:2.85rem; }.ribbon { font-size:.62rem; }.ribbon .wrap { width:100%; justify-content:center; gap:15px; }.ribbon span:last-of-type { display:none; }.section-top { margin-bottom:30px; }.section-top h2,.approach-grid h2 { font-size:clamp(2.6rem,10vw,3.5rem); }.section-top p { font-size:1rem; }.destination-card { grid-template-columns:1fr; }.destination-art { min-height:300px; }.destination-art img { max-height:300px; }.destination-copy { padding:34px 27px 38px; }.destination-copy h3 { margin-top:13px; font-size:3.15rem; }.destination-copy p { font-size:1rem; }.approach-list article { grid-template-columns:34px 1fr; gap:12px; }.closing h2 { font-size:clamp(2.6rem,10vw,3.5rem); }.closing p { font-size:1rem; }.footer-inner { align-items:start; flex-direction:column; gap:21px; } }
@media (max-width:380px) { .wrap { width:calc(100% - 28px); }.brand { font-size:1.25rem; }.site-header nav { gap:12px; }.site-header nav a { font-size:.78rem; }.hero h1 { font-size:2.75rem; }.hero-art { min-height:330px; }.destination-copy h3 { font-size:2.9rem; } }
