@charset "UTF-8";
:root {
  --warm-light:#f8f3e7; --cream:var(--warm-light); --paper:var(--warm-light); --ink:#303b2a; --muted:#58614f;
  --olive:#39432e; --sage:#e5e7d9; --gold:#cb9533; --honey:#b7863c; --warm:#ece2cc;
  --body-size:20px; --body-leading:1.8;
  --serif:Georgia,'Times New Roman',serif; --sans:Arial,Helvetica,sans-serif;
  --gutter:clamp(28px,5.5vw,96px);
}
* { box-sizing:border-box; }
html { scroll-padding-top:24px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-underline-offset:5px; }
a,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,summary:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
img,svg { display:block; max-width:100%; }
img { width:100%; height:100%; object-fit:cover; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; text-wrap:balance; }
h2 { font-size:clamp(40px,4.25vw,63px); line-height:1.12; letter-spacing:-.045em; }
p { font-size:var(--body-size); line-height:var(--body-leading); color:var(--muted); }
::selection { background:#e2c58e; color:#25311f; }
.wrap { max-width:1600px; margin-inline:auto; padding-inline:var(--gutter); }
.skip { position:fixed; left:16px; top:-100px; z-index:20; padding:12px 20px; background:var(--ink); color:var(--paper); border-radius:14px; }
.skip:focus { top:16px; }
.masthead { min-height:112px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:inline-flex; align-items:center; gap:16px; text-decoration:none; flex-shrink:0; border-radius:10px; }
.brand-logo { width:68px; height:41px; object-fit:contain; }
.wordmark { width:auto; height:30.6px; object-fit:contain; flex-shrink:0; }
.desktop-nav { display:flex; align-items:center; gap:clamp(25px,3vw,48px); }
.desktop-nav a { font-size:14px; text-decoration:none; border-radius:999px; padding:12px 3px; }
.desktop-nav a:hover { color:#96702f; }
.desktop-nav a:last-child { background:#e9dfc8; padding:14px 26px; color:var(--ink); }
.desktop-nav a:last-child:hover { background:#e0d2b5; }
.mobile-menu { display:none; }

/* The photograph stretches to the full, intrinsic height of the text column. */
.hero { display:grid; grid-template-columns:1fr 1.05fr; align-items:stretch; gap:clamp(38px,5.5vw,88px); padding-block:90px; }
.hero-copy { align-self:stretch; }
.hero h1 { font-size:clamp(49px,5.2vw,82px); line-height:1.055; letter-spacing:-.055em; text-wrap:initial; }
.hero h1 em { font-weight:400; color:#7d875a; }
.hero p { margin-top:32px; max-width:520px; }
.hero-image { --curve:190px; align-self:stretch; position:relative; min-height:0; overflow:hidden; border-radius:var(--curve) 24px 24px 24px; }
.hero-image img { position:absolute; inset:0; object-position:61% center; }
.hero-image:after { content:''; position:absolute; inset:12px; border:1px solid #fffcf570; border-radius:calc(var(--curve) - 12px) 14px 14px 14px; pointer-events:none; }

/* The same warm surface unifies the hero, chapters one/three and FAQ. */
.warm-surface { position:relative; isolation:isolate; overflow:hidden; background:var(--warm); }
.warm-surface:before { content:''; position:absolute; z-index:-1; width:600px; height:600px; right:-150px; top:-200px; border-radius:50%; background:radial-gradient(circle,#d6b36e42,transparent 70%); }
.warm-surface:after { content:''; position:absolute; z-index:-1; right:0; top:0; width:45%; height:100%; background-image:radial-gradient(#a77c3526 .8px,transparent .9px); background-size:19px 19px; mask-image:linear-gradient(90deg,transparent,#0008); }
.intro { background:var(--olive); }
.intro-inner { padding-block:92px 98px; max-width:1180px; }
.intro h2 { max-width:770px; color:#f4ead3; }
.intro p { margin-top:30px; max-width:960px; color:#e6e7d9; }

.section-pill { display:inline-flex; align-items:center; gap:9px; padding:8px 14px; margin-bottom:23px; border-radius:999px; background:#b59a6130; color:#665b3c; font-size:12px; line-height:1.4; letter-spacing:.035em; font-weight:500; }
.pill-step { display:flex; align-items:center; justify-content:center; width:23px; height:23px; margin:-3px 0 -3px -6px; border-radius:50%; background:#b3975130; color:#5b583a; font-size:10px; letter-spacing:0; }
.intro .section-pill,.evening .section-pill { background:#eee4cb1c; color:#e8d9b7; }

/* Three contiguous chapters: 42% photograph, 58% text, alternating sides. */
.story { background:var(--warm); }
.story-chapter { display:grid; grid-template-columns:42% 58%; width:100%; min-height:clamp(600px,40vw,860px); }
.story-image { position:relative; min-height:0; overflow:hidden; }
.story-image img { position:absolute; inset:0; object-position:center; }
.story-copy { align-self:center; padding:clamp(52px,5.4vw,88px) clamp(38px,6vw,100px); }
.story-copy-inner { width:100%; }
.story-copy h2 { font-size:clamp(40px,4vw,60px); max-width:650px; }
.story-copy p { margin-top:28px; }
.story-accent { display:block; width:56px; height:5px; margin-top:25px; border-radius:999px; background:var(--honey); }
.story-notes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:35px 0 0; padding:0; list-style:none; }
.story-notes li { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.story-note-icon { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:12px; background:#b59a6124; color:#7a7149; }
.story-note-icon svg { width:21px; height:21px; }
.story-note-label { font-size:14px; line-height:1.5; color:var(--ink); }
.chapter-one { background:var(--warm); }
.chapter-one .story-image img { object-position:50% 20%; }
.chapter-two { grid-template-columns:58% 42%; background:var(--warm-light); }
.chapter-two .story-image img { object-position:53% center; }
.chapter-three { background:var(--warm); }
.chapter-three .story-image img { object-position:36% center; }

/* A full-width closing thought in natural light, with no split columns. */
.philosophy { position:relative; isolation:isolate; overflow:hidden; background:#eee9dc; }
.philosophy:before { content:''; position:absolute; z-index:-2; inset:0; background-image:linear-gradient(#f4efe2ab,#f4efe2c9),url('/assets/gamtos-fonas-1536.webp'); background-size:cover; background-position:center; }
.philosophy:after { content:''; position:absolute; z-index:-1; right:3%; bottom:-22px; width:340px; height:220px; background:url('/assets/logo.svg') center/contain no-repeat; opacity:.075; }
.philosophy-copy { padding-top:104px; padding-bottom:110px; max-width:1180px; text-align:center; }
.philosophy h2 { max-width:820px; margin-inline:auto; }
.philosophy p { max-width:980px; margin:32px auto 0; color:#4e5944; }

.evening { background:var(--olive); padding-block:90px; }
.evening-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(45px,7vw,115px); align-items:center; }
.evening-copy h2 { color:#f4ead3; font-size:clamp(42px,4.6vw,68px); }
.evening-copy p { color:#e6e7d9; margin-top:32px; }
.evening-image { --curve:170px; height:650px; overflow:hidden; position:relative; border-radius:24px 24px var(--curve) 24px; }
.evening-image img { object-position:50% 55%; }
.evening-image:after { content:''; position:absolute; inset:12px; border:1px solid #f6edda50; border-radius:14px 14px calc(var(--curve) - 12px) 14px; pointer-events:none; }

.faq-section { background:var(--warm); }
.faq { padding-top:108px; padding-bottom:110px; display:grid; grid-template-columns:.77fr 1.23fr; align-items:start; gap:clamp(42px,7vw,115px); }
.faq-heading h2 { max-width:460px; }
.faq-heading p { max-width:460px; margin-top:30px; }
.faq-list { display:flex; flex-direction:column; gap:13px; min-width:0; }
.faq-item { background:var(--warm-light); border-radius:22px; overflow:hidden; }
.faq-item[open] { background:var(--warm-light); }
.faq-item summary { list-style:none; cursor:pointer; position:relative; padding:25px 76px 25px 27px; font-size:var(--body-size); line-height:1.5; font-weight:400; border-radius:22px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:focus-visible { outline-offset:-4px; }
.faq-toggle { position:absolute; right:23px; top:25px; width:30px; height:30px; border-radius:50%; background:#e8ecdc; }
.faq-toggle:before,.faq-toggle:after { content:''; position:absolute; left:9px; top:14px; width:12px; height:1px; background:var(--ink); }
.faq-toggle:after { transform:rotate(90deg); }
.faq-item[open] .faq-toggle { background:#e9dfc9; }
.faq-item[open] .faq-toggle:after { transform:rotate(0); }
.faq-item p { padding:0 27px 28px; }
.faq-item summary:hover { color:#8e692d; }

.contact { background:#4b5642; color:#f3ead7; position:relative; isolation:isolate; }
.contact:before { content:''; z-index:-1; position:absolute; inset:0 0 130px; background:radial-gradient(ellipse at 95% 8%,#d6b9750d,transparent 58%); }
.contact-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(42px,9vw,145px); padding-top:95px; padding-bottom:85px; align-items:start; }
.contact h2 { max-width:580px; color:#f4ead3; }
.contact-copy p { margin-top:28px; max-width:600px; color:#dfe1d2; }
.contact-links { padding-top:10px; min-width:0; }
.phone-link { display:flex; gap:17px; align-items:center; font-family:var(--serif); font-size:clamp(31px,3.15vw,48px); line-height:1.2; letter-spacing:-.035em; text-decoration:none; border-radius:20px; margin-bottom:30px; }
.phone-link:hover { color:#e6c781; }
.phone-symbol { width:48px; height:48px; flex-shrink:0; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#5b674e; color:#ddc382; }
.phone-symbol svg { width:22px; height:22px; }
.socials { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.socials a { display:flex; align-items:center; justify-content:space-between; padding:22px 24px; gap:15px; text-decoration:none; font-size:16px; background:#56614c; color:#efe9d9; border-radius:20px; }
.socials a:nth-child(2),.socials a:nth-child(3) { background:#5b6651; }
.socials a svg { width:19px; height:19px; flex-shrink:0; }
.socials a:hover { background:#667259; color:#fff6df; }
.footer-bottom { background:#303a2b; color:#f2ead8; }
.footer-bottom-inner { display:flex; justify-content:space-between; align-items:center; gap:30px; min-height:115px; padding-block:25px; }
.footer-bottom .brand-logo { width:52px; height:32px; }
.footer-bottom .wordmark { height:23.4px; }
.footer-bottom p { font-size:13px; color:#d3d5c3; }

@media(min-width:1600px) {
  .hero h1 { font-size:84px; }
}
@media(max-width:1150px) {
  :root { --gutter:45px; }
  .hero { gap:40px; }
  .hero h1 { font-size:clamp(49px,5.3vw,63px); }
  .hero-image { --curve:140px; }
  .story-copy { padding:55px 43px; }
  .story-chapter { min-height:660px; }
  .story-copy h2 { font-size:44px; }
  .evening-inner { gap:48px; }
  .evening-image { height:710px; --curve:135px; }
  .faq { gap:43px; grid-template-columns:.75fr 1.25fr; }
  .faq-item summary { padding-left:24px; }
  .faq-item p { padding-inline:24px; }
  .contact-inner { gap:45px; }
  .phone-link { font-size:34px; gap:13px; }
  .phone-symbol { width:40px; height:40px; }
  .socials { gap:12px; }
  .socials a { padding:20px 18px; font-size:15px; }
}
@media(max-width:900px) {
  :root { --gutter:32px; }
  .masthead { min-height:100px; }
  .brand { gap:12px; }
  .brand-logo { width:58px; height:35px; }
  .wordmark { height:27px; }
  .desktop-nav { gap:22px; }
  .desktop-nav a { font-size:13px; }
  .desktop-nav a:last-child { padding:13px 20px; }
  .hero h1 { font-size:49px; }
  .hero { gap:30px; padding-block:70px; }
  .hero p { margin-top:27px; }
  .intro-inner { padding-block:75px; }
  .story-copy { padding:48px 33px; }
  .story-copy h2 { font-size:40px; }
  .story-chapter { min-height:740px; }
  .philosophy-copy { padding-block:85px; }
  .evening-inner { gap:35px; }
  .evening-copy h2 { font-size:44px; }
  .evening-image { height:790px; --curve:110px; }
  .faq { grid-template-columns:1fr; gap:42px; padding-block:85px; }
  .faq-heading { display:grid; grid-template-columns:1fr 1.1fr; gap:40px; }
  .faq-heading p { margin-top:0; }
  .contact-inner { gap:38px; }
  .phone-link { font-size:28px; gap:12px; }
  .phone-symbol { width:35px; height:35px; }
  .phone-symbol svg { width:18px; height:18px; }
  .socials { grid-template-columns:1fr; }
  .socials a { font-size:16px; }
}
@media(max-width:1024px) {
  .story-chapter,.chapter-two { grid-template-columns:1fr; min-height:0; }
  .story-image { order:0; height:clamp(350px,75vw,600px); }
  .chapter-one .story-image,.chapter-two .story-image { height:auto; aspect-ratio:1; }
  .story-copy { order:1; padding:49px var(--gutter) 60px; }
}
@media(max-width:760px) {
  :root { --gutter:26px; --body-size:18px; }
  h2 { font-size:clamp(37px,6.5vw,48px); }
  .masthead { min-height:88px; }
  .brand-logo { width:56px; height:34px; }
  .wordmark { height:26.1px; }
  .desktop-nav { display:none; }
  .mobile-menu { display:block; position:relative; }
  .mobile-menu>summary { display:flex; gap:13px; align-items:center; list-style:none; cursor:pointer; padding:13px 0 13px 15px; border-radius:12px; font-size:14px; }
  .mobile-menu>summary::-webkit-details-marker { display:none; }
  .menu-icon { width:20px; display:flex; flex-direction:column; gap:5px; }
  .menu-icon:before,.menu-icon:after { content:''; width:20px; height:1px; background:var(--ink); }
  .mobile-menu[open] .menu-icon:before { transform:translateY(3px) rotate(45deg); }
  .mobile-menu[open] .menu-icon:after { transform:translateY(-3px) rotate(-45deg); }
  .mobile-menu nav { position:absolute; right:0; top:57px; width:min(330px,calc(100vw - 52px)); background:var(--paper); border-radius:22px; z-index:5; padding:12px; box-shadow:0 12px 45px #303b2a1c; }
  .mobile-menu nav a { display:block; padding:18px; text-decoration:none; font-size:16px; border-radius:14px; }
  .mobile-menu nav a:hover { background:var(--sage); }
  .hero { grid-template-columns:1fr; gap:34px; padding-block:60px; }
  .hero h1 { font-size:clamp(47px,9vw,68px); line-height:1.06; max-width:610px; }
  .hero p { max-width:610px; margin-top:27px; }
  .hero-image { height:clamp(380px,83vw,540px); min-height:0; --curve:145px; border-radius:var(--curve) 20px 20px 20px; }
  .hero-image:after { inset:11px; border-radius:calc(var(--curve) - 11px) 11px 11px 11px; }
  .intro-inner { padding-block:65px 70px; }
  .intro p { margin-top:26px; }
  .warm-surface:after { width:65%; }
  .story-chapter,.chapter-two { grid-template-columns:1fr; min-height:0; }
  .story-image { order:0; min-height:0; height:clamp(350px,75vw,520px); }
  .story-image img { object-position:center 45%; }
  .chapter-three .story-image img { object-position:36% center; }
  .story-copy { order:1; padding:49px var(--gutter) 60px; }
  .story-copy h2 { font-size:clamp(38px,6.5vw,48px); max-width:620px; }
  .story-copy p { margin-top:25px; }
  .philosophy-copy { padding-block:75px 80px; text-align:left; }
  .philosophy h2 { max-width:550px; margin-inline:0; }
  .philosophy p { margin-top:28px; }
  .philosophy:after { width:240px; height:145px; bottom:-8px; right:-10px; opacity:.06; }
  .evening { padding-block:62px; }
  .evening-inner { grid-template-columns:1fr; gap:36px; }
  .evening-copy h2 { font-size:clamp(40px,7vw,51px); max-width:590px; }
  .evening-copy p { margin-top:27px; }
  .evening-image { height:clamp(420px,95vw,620px); --curve:130px; }
  .faq { padding-block:73px; gap:36px; }
  .faq-heading { display:block; }
  .faq-heading h2 { max-width:550px; }
  .faq-heading p { margin-top:26px; max-width:680px; }
  .faq-list { gap:12px; }
  .faq-item { border-radius:20px; }
  .faq-item summary { padding:23px 64px 23px 22px; border-radius:20px; }
  .faq-toggle { width:28px; height:28px; right:19px; top:24px; }
  .faq-toggle:before,.faq-toggle:after { left:8px; top:13px; }
  .faq-item p { padding:0 22px 25px; }
  .contact-inner { grid-template-columns:1fr; gap:36px; padding-top:70px; padding-bottom:60px; }
  .contact h2 { max-width:570px; }
  .contact-copy p { margin-top:25px; max-width:680px; }
  .contact-links { padding-top:0; }
  .phone-link { font-size:clamp(29px,6vw,42px); gap:15px; margin-bottom:27px; }
  .phone-symbol { width:43px; height:43px; }
  .phone-symbol svg { width:21px; height:21px; }
  .socials { grid-template-columns:1fr 1fr; gap:13px; }
  .socials a { padding:21px 22px; font-size:16px; }
  .footer-bottom-inner { min-height:130px; gap:25px; }
  .footer-bottom .brand { gap:11px; }
  .footer-bottom .brand-logo { width:43px; height:27px; }
  .footer-bottom .wordmark { height:21.6px; }
}
@media(max-width:430px) {
  :root { --gutter:23px; }
  .masthead { gap:16px; }
  .brand { gap:11px; }
  .brand-logo { width:48px; height:29px; }
  .wordmark { height:24.3px; }
  .hero { gap:30px; }
  .hero h1 { font-size:clamp(43px,11vw,49px); }
  .hero-image { height:390px; --curve:115px; }
  .story-notes { grid-template-columns:1fr; gap:15px; margin-top:30px; }
  .story-notes li { flex-direction:row; align-items:center; gap:13px; }
  .socials { gap:11px; }
  .socials a { padding:20px 17px; font-size:15px; }
  .socials a svg { width:17px; height:17px; }
  .phone-link { font-size:29px; gap:11px; }
  .phone-symbol { width:37px; height:37px; }
  .footer-bottom-inner { flex-direction:column; align-items:flex-start; justify-content:center; gap:22px; padding-block:30px; }
  .footer-bottom p { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after { transition:none!important; animation:none!important; scroll-behavior:auto!important; }
}
