:root{--ink:#1d1c1a;--muted:#6f6a63;--bg:#faf8f4;--line:#e6e1d8;--accent:#a0703f;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,-apple-system,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
.draft-banner{background:var(--ink);color:#f3efe8;text-align:center;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:7px}
.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:20px 40px;background:rgba(250,248,244,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font-family:var(--serif);font-size:24px;text-decoration:none;letter-spacing:.02em}
.logo em{color:var(--accent)}
.nav nav a{text-decoration:none;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-left:30px;color:var(--muted);transition:color .2s}
.nav nav a:hover{color:var(--ink)}
.nav-cta{color:var(--accent)!important}
.hero{display:grid;grid-template-columns:1.25fr 1fr;height:84vh;min-height:600px;max-height:820px}
.hero-img{background:url(images/hero-beach-ceremony.jpg) center/cover}
.hero-text{display:flex;flex-direction:column;justify-content:center;padding:60px 64px}
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:24px}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,5vw,72px);line-height:1.05;margin-bottom:28px}
h1 em,h2 em{color:var(--accent)}
.lead{color:var(--muted);max-width:420px;margin-bottom:40px}
.btn{display:inline-block;align-self:flex-start;padding:14px 30px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);text-decoration:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase;transition:all .25s}
.btn:hover{background:var(--accent);border-color:var(--accent)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{color:var(--bg)}
.intro{text-align:center;padding:120px 28px}
.intro p{font-family:var(--serif);font-size:clamp(24px,2.6vw,32px);line-height:1.45;max-width:780px;margin:0 auto}
.intro strong{font-weight:500}
.section-title{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.6vw,48px);margin-bottom:16px}
.draft-note{color:var(--muted);font-size:14px;margin-bottom:56px}
.packages{display:grid;grid-template-columns:repeat(2,1fr);gap:64px 48px;padding-bottom:140px}
.pkg img{aspect-ratio:4/3;height:auto}
.pkg-body{padding-top:28px}
.pkg-num{font-family:var(--serif);color:var(--accent);font-size:18px}
.pkg h3{font-family:var(--serif);font-weight:400;font-size:32px;margin:2px 0 12px}
.pkg-desc{color:var(--muted);margin-bottom:20px}
.pkg ul{list-style:none;border-top:1px solid var(--line);margin-bottom:22px}
.pkg li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.price{font-size:14px;color:var(--muted)}
.price span{font-family:var(--serif);font-size:30px;color:var(--ink);margin:0 6px}
.price small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);padding:2px 8px;margin-left:6px;vertical-align:middle}
.how{background:#f1ece4;padding:120px 0}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:48px}
.steps span{font-family:var(--serif);font-size:44px;color:var(--accent);line-height:1}
.steps h4{font-family:var(--serif);font-weight:500;font-size:22px;margin:14px 0 8px}
.steps p{color:var(--muted);font-size:15px}
#gallery{padding-top:140px;padding-bottom:140px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:260px;gap:16px;margin-top:48px}
.g-wide{grid-column:span 2}
.g-tall{grid-row:span 2}
.about{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:120px 0}
.about-inner{display:grid;grid-template-columns:1fr 2fr;gap:60px}
.about p{margin-bottom:18px;max-width:640px}
.about a{color:var(--accent)}
.langs{font-family:var(--serif);font-size:22px;color:var(--accent)}
.contact{text-align:center;padding-top:140px;padding-bottom:140px}
.contact>p{color:var(--muted)}
.contact-links{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:40px 0 28px}
.small{font-size:13px}
footer{text-align:center;padding:40px 28px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
.credits{margin-top:6px;opacity:.8}
@media (max-width:900px){
 .nav{padding:16px 20px}.nav nav a:not(.nav-cta){display:none}
 .hero{grid-template-columns:1fr}.hero-img{min-height:52vh}.hero{height:auto;max-height:none}.hero-text{padding:48px 28px}
 .packages{grid-template-columns:1fr;gap:72px}
 .steps{grid-template-columns:1fr 1fr}
 .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:200px}
 .about-inner{grid-template-columns:1fr;gap:10px}
 .intro,.how,.about{padding:80px 0}.intro{padding:80px 28px}
 #gallery,.contact{padding-top:90px;padding-bottom:90px}
}
@media (max-width:520px){.steps{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.g-wide{grid-column:auto}.g-tall{grid-row:auto}}
/* booking page */
.page-head{padding:100px 28px 40px}
.page-head .lead{max-width:640px}
.products{display:grid;grid-template-columns:repeat(2,1fr);gap:64px 48px;padding-bottom:120px}
.product img{aspect-ratio:16/9;height:auto}
.product-body{padding-top:26px}
.product h3{font-family:var(--serif);font-weight:400;font-size:32px;margin:2px 0 12px}
.product.selected img{outline:1px solid var(--accent);outline-offset:6px}
.gear{list-style:none;border-top:1px solid var(--line);margin-bottom:22px}
.gear li{padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.gear b{font-weight:500;color:var(--accent);margin-right:4px}
.gear span{display:block;color:var(--muted);font-size:13px}
.product-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.pkg-link{display:inline-block;margin-top:14px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent)}
.booking{background:#f1ece4;padding:120px 0}
.booking-inner{display:grid;grid-template-columns:1.6fr 1fr;gap:64px;align-items:start}
.muted{color:var(--muted)}
#bookForm{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px;margin-top:40px}
.field{display:flex;flex-direction:column}
.full{grid-column:1/-1}
#bookForm label,#bookForm legend{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
#bookForm label small{text-transform:none;letter-spacing:0}
#bookForm input,#bookForm select,#bookForm textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);padding:12px 14px;border-radius:0;width:100%}
#bookForm input:focus,#bookForm select:focus,#bookForm textarea:focus{outline:none;border-color:var(--accent)}
fieldset{border:none;border-top:1px solid #ddd5c8;padding-top:16px}
#bookForm label.check{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-size:15px;color:var(--ink);margin:6px 0}
#bookForm label.check input{width:16px;height:16px;accent-color:var(--accent)}
.addon-price{color:var(--accent);font-size:13px}
.extras{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.extras label{display:flex;flex-direction:column;gap:8px}
.extras small{color:var(--accent)}
#bookForm button{justify-self:start;cursor:pointer;font-family:var(--sans)}
.form-error{color:#9b3b2a;font-size:14px}
.summary{position:sticky;top:110px;background:var(--bg);border:1px solid var(--line);padding:36px}
.summary h3{font-family:var(--serif);font-weight:400;font-size:28px;margin-bottom:18px}
.summary table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:18px}
.summary td{padding:9px 0;border-bottom:1px solid var(--line)}
.summary td:last-child{text-align:right;white-space:nowrap;padding-left:12px}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}
.sum-total span{font-family:var(--serif);font-size:36px;letter-spacing:0;color:var(--ink)}
@media (max-width:900px){
 .products{grid-template-columns:1fr}
 .booking-inner{grid-template-columns:1fr}
 .summary{position:static}
 #bookForm{grid-template-columns:1fr}
 .booking{padding:80px 0}.page-head{padding:70px 28px 30px}
}
/* product thumbnails */
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:14px 12px;margin:-4px 0 26px}
.thumbs figure{margin:0;text-align:center}
.pkg .thumbs img,.product .thumbs img,.thumbs img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#fff;border:1px solid var(--line);padding:6px;outline:none}
.thumbs figcaption{font-size:11px;letter-spacing:.04em;color:var(--muted);margin-top:6px;line-height:1.3}
/* quantity badge on product thumbnails */
.thumbs figure.qty{position:relative}
.thumbs figure.qty::after{content:attr(data-qty);position:absolute;top:6px;right:6px;min-width:26px;height:22px;padding:0 7px;border-radius:11px;background:var(--accent);color:#fff;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.04em;line-height:22px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.12)}
/* logo */
.logo{display:flex;align-items:center;line-height:0}
.logo img{display:block}
.logo .logo-full{height:44px;width:auto}
.logo .logo-icon{display:none;height:40px;width:40px}
@media (max-width:900px){.logo .logo-full{height:36px}}
@media (max-width:380px){.logo .logo-full{display:none}.logo .logo-icon{display:block}}
