
:root{
  --bg:#ffffff;
  --bg2:#f5f5f7;
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --soft:#ffffff;
  --line:rgba(0,0,0,.10);
  --line2:rgba(0,0,0,.06);
  --dark:#000000;
  --dark2:#1d1d1f;
  --accent:#0071e3;
  --accent-press:#0077ed;
  --sage:#6e6e73;
  --sage2:#f5f5f7;
  --shadow:0 18px 60px rgba(0,0,0,.10);
  --shadow-sm:0 4px 18px rgba(0,0,0,.06);
  --r:18px;
  --r-lg:28px;
  --max:1024px;
  --max-wide:1240px;
  --serif:-apple-system,BlinkMacSystemFont,'SF Pro Display','Inter',system-ui,'Segoe UI',Arial,sans-serif;
  --sans:-apple-system,BlinkMacSystemFont,'SF Pro Text','Inter',system-ui,'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  line-height:1.5;
  letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--max-wide),calc(100% - 44px));margin:0 auto}

/* ---------- Nav ---------- */
.topbar{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line2)}
.nav{height:52px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:600;font-size:1.18rem;letter-spacing:-.02em;color:var(--ink)}
.brand-icon{width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:.9rem;font-weight:600}
.brand small{display:block;font-family:var(--sans);color:var(--muted);font-size:.58rem;font-weight:500;text-transform:uppercase;letter-spacing:.16em;margin-top:2px}
.nav-links{display:flex;align-items:center;gap:34px;font-weight:400;font-size:.83rem;letter-spacing:-.01em;color:var(--ink)}
.nav-links a{opacity:.82;transition:opacity .2s}
.nav-links a:hover,.nav-links a.active{opacity:1}
.hamb{display:none;width:38px;height:38px;border:none;border-radius:10px;background:transparent;align-items:center;justify-content:center;gap:5px;flex-direction:column;cursor:pointer}
.hamb span{width:18px;height:1.5px;background:var(--ink);border-radius:9px}
.mobile-links{display:none;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);border-top:1px solid var(--line2)}
.mobile-links .container{display:grid;gap:2px;padding:10px 0}
.mobile-links a{font-weight:500;color:var(--ink);padding:12px 4px;border-bottom:1px solid var(--line2);font-size:1.05rem}
.mobile-links a:last-child{border-bottom:none}
.mobile-links a.active{color:var(--accent)}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:calc(92vh - 52px);display:flex;align-items:flex-end;overflow:hidden;background:#000}
.hero-bg{position:absolute;inset:0;overflow:hidden;background:#000}
.hero-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.82) saturate(1.02);transform:scale(1.06);animation:heroZoom 9s ease-out forwards}
.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55),rgba(0,0,0,.05) 52%),linear-gradient(90deg,rgba(0,0,0,.35),transparent 60%)}
.hero-content{position:relative;z-index:2;color:#fff;padding:0 0 84px;max-width:760px}

/* Minimalist centered home hero */
.centered-hero{min-height:calc(100vh - 52px);align-items:center;text-align:center}
.centered-hero .hero-bg img{filter:brightness(.7) saturate(1.02)}
.centered-hero .hero-bg:after{background:linear-gradient(0deg,rgba(0,0,0,.5),rgba(0,0,0,.28) 50%,rgba(0,0,0,.45))}
.centered-hero .hero-content{padding:0;max-width:680px;margin:0 auto}
.centered-hero h1{font-size:clamp(3.6rem,12vw,8rem);letter-spacing:-.045em;margin-bottom:14px}
.centered-hero p{margin:0 auto;font-size:clamp(1.15rem,2vw,1.5rem);color:rgba(255,255,255,.9)}
.centered-hero .hero-actions{justify-content:center;margin-top:34px}
.centered-hero .hero-actions .btn-glass{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);padding:11px 26px;backdrop-filter:blur(14px)}
.centered-hero .hero-actions .btn-glass:hover{background:rgba(255,255,255,.28);text-decoration:none}
.eyebrow{font-size:.78rem;letter-spacing:-.01em;font-weight:500;color:var(--muted);margin-bottom:14px}
.hero .eyebrow,.dark-block .eyebrow{color:rgba(255,255,255,.78)}
.hero h1,.subhero h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.8rem,6vw,5rem);line-height:1.04;letter-spacing:-.03em;margin:0 0 18px;color:#fff}
.section-head h2,.story-copy h2,.product-wish h2,.location-preview h2{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.06;letter-spacing:-.03em;margin:0 0 18px}
.hero p{font-size:clamp(1.1rem,1.7vw,1.4rem);font-weight:400;max-width:620px;color:rgba(255,255,255,.86);margin:0;letter-spacing:-.015em}
.hero-actions{display:flex;gap:20px;flex-wrap:wrap;margin-top:30px;align-items:center}
.centered{justify-content:center}

/* ---------- Buttons (Apple pill) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;border-radius:980px;border:1px solid transparent;background:var(--accent);color:#fff;font-weight:400;font-size:1rem;letter-spacing:-.01em;line-height:1.2;transition:background .2s,transform .2s,opacity .2s;cursor:pointer}
.btn:hover{background:var(--accent-press)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:#f0f0f2}
.btn-glass{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.34);color:#fff;backdrop-filter:blur(14px)}
.btn-glass:hover{background:rgba(255,255,255,.28)}
/* link-style CTA for hero secondary */
.hero-actions .btn-glass{background:transparent;border:none;color:#fff;padding:11px 4px}
.hero-actions .btn-glass:hover{color:#fff;text-decoration:underline;text-underline-offset:4px;background:transparent}
.hero-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}
.hero-facts span{padding:7px 14px;border-radius:980px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);font-weight:400;letter-spacing:-.01em;font-size:.82rem;color:#fff}

/* ---------- Sections ---------- */
.section-pad{padding:110px 0}
.soft{background:var(--bg2)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}

.mini-card,.step-card,.content-card,.legal-card,.form-card,.split-card{background:#fff;border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:30px}
.soft .mini-card,.soft .step-card,.soft .content-card{background:#fff}
.mini-card span,.step-card span,.date{display:inline-block;font-family:var(--sans);font-style:normal;color:var(--muted);font-weight:500;margin-bottom:18px;font-size:.85rem;letter-spacing:-.01em;text-transform:none}
.mini-card h3,.step-card h3,.content-card h3,.content-card h2,.legal-card h2,.form-card h2{font-family:var(--serif);font-weight:600;font-size:1.32rem;letter-spacing:-.02em;margin:0 0 10px;color:var(--ink)}
.mini-card p,.step-card p,.content-card p,.legal-card p,.form-card p,.story-copy p,.subhero p,.muted{color:var(--muted);font-weight:400;letter-spacing:-.01em}

.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.story-grid:nth-child(even){grid-template-columns:1fr 1fr}
.story-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);background:#000}
.story-img img{width:100%;height:560px;object-fit:cover}
.story-copy p,.product-wish p,.subhero p{font-size:1.18rem;max-width:560px;line-height:1.5}

.section-head{max-width:760px;margin-bottom:48px}

.gallery-band{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0;background:transparent}
.gallery-band img{width:100%;height:480px;object-fit:cover;border-radius:var(--r-lg)}

/* ---------- Dark block ---------- */
.dark-block{background:#000;color:#fff;position:relative;overflow:hidden}
.dark-block:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 78% 18%,rgba(0,113,227,.22),transparent 42%);pointer-events:none}
.dark-block h2,.dark-block .wish-panel strong{color:#fff}
.wish-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr .85fr;gap:48px;align-items:center}
.wish-panel{min-height:300px;border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);display:grid;align-content:end;padding:34px;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.wish-panel strong{font-family:var(--serif);font-weight:600;font-size:1.9rem;letter-spacing:-.02em}
.wish-panel span{color:rgba(255,255,255,.74);margin-top:8px}

.split-card{display:grid;grid-template-columns:1fr 1.25fr;gap:34px;align-items:stretch}
.map-frame{border-radius:var(--r);overflow:hidden;min-height:420px;background:#e8e8ed}
.map-frame iframe{width:100%;height:100%;border:0;display:block}

/* ---------- Subpages ---------- */
.page{padding-bottom:30px}
.subhero{padding:120px 0 56px;background:var(--bg2)}
.subhero.center{text-align:center;min-height:54vh;display:grid;place-items:center}
.subhero h1{font-size:clamp(2.8rem,6.4vw,5.4rem);max-width:920px;color:var(--ink)}
.subhero .eyebrow{color:var(--muted)}
.feature-image{padding-top:0}
.feature-image .container{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.feature-image img{width:100%;height:600px;object-fit:cover}

.check-list{padding-left:0;list-style:none;display:grid;gap:12px;color:var(--ink);font-weight:400}
.check-list li{display:flex;align-items:flex-start}
.check-list li:before{content:"";width:20px;height:20px;margin-right:12px;flex:0 0 auto;border-radius:50%;background:var(--accent);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/14px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/14px no-repeat}

/* ---------- Forms ---------- */
.form-layout{display:grid;grid-template-columns:1.4fr .8fr;gap:28px;align-items:start}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}
.form-grid label{display:grid;gap:8px;font-weight:500;color:var(--ink);font-size:.82rem;text-transform:none;letter-spacing:-.01em}
.form-grid .full{grid-column:1/-1}
input,textarea{border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px 15px;font:inherit;font-size:1rem;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}
textarea{min-height:150px;resize:vertical}
input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(0,113,227,.16)}
.note{font-size:.9rem}
.side-note img{margin-top:24px;border-radius:var(--r);height:280px;width:100%;object-fit:cover}

/* ---------- FAQ ---------- */
.faq-shell{max-width:820px}
.faq-item{background:#fff;border:1px solid var(--line2);border-radius:var(--r);margin-bottom:12px;box-shadow:var(--shadow-sm);overflow:hidden}
.faq-item summary{cursor:pointer;padding:22px 26px;font-family:var(--serif);font-weight:600;font-size:1.12rem;letter-spacing:-.015em;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"+";font-weight:400;font-size:1.5rem;color:var(--muted);transition:transform .2s}
.faq-item[open] summary:after{transform:rotate(45deg)}
.faq-item p{padding:0 26px 22px;margin:0;color:var(--muted)}

/* ---------- Legal ---------- */
.legal-card{max-width:820px}
.legal-card h2{margin-top:30px}
.legal-card h2:first-child{margin-top:0}

/* ---------- Footer ---------- */
.footer{padding:44px 0;background:var(--bg2);color:var(--muted);border-top:1px solid var(--line2);font-size:.85rem}
.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr .7fr;gap:32px}
.footer a{color:var(--muted)}
.footer a:hover{color:var(--ink)}
.footer-brand{font-family:var(--serif);font-size:1.3rem;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.footer strong{color:var(--ink);font-weight:500;display:block;margin-bottom:4px}
.footer p{color:var(--muted);margin:.4rem 0 0;line-height:1.55}

/* ---------- Reveal ---------- */
.reveal-up{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal-up.is-visible{opacity:1;transform:none}
@keyframes heroZoom{to{transform:scale(1)}}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  .nav-links{display:none}
  .hamb{display:flex}
  .mobile-links.open{display:block}
  .container{width:min(100% - 28px,var(--max-wide))}
  .hero{min-height:680px}
  .hero-content{padding-bottom:56px}
  .hero h1,.subhero h1{font-size:clamp(2.6rem,11vw,4rem)}
  .grid-4,.grid-3,.grid-2,.story-grid,.story-grid:nth-child(even),.wish-grid,.split-card,.form-layout,.footer-grid{grid-template-columns:1fr}
  .section-pad{padding:64px 0}
  .story-img img,.gallery-band img,.feature-image img{height:340px}
  .gallery-band{grid-template-columns:1fr}
  .map-frame{min-height:320px}
  .form-grid{grid-template-columns:1fr}
  .subhero{padding-top:72px}
  .mini-card,.step-card,.content-card,.legal-card,.form-card,.split-card{padding:24px}
  .footer{padding:36px 0}
}
