:root {
  --cream: #f8f1e7;
  --cream-2: #fffaf3;
  --paper: #fdf9f2;
  --blue: #2c3c69;
  --blue-dark: #223052;
  --ink: #253356;
  --muted: #6f7390;
  --line: rgba(44, 60, 105, .13);
  --peach: #f1d7c9;
  --shadow: 0 24px 80px rgba(20, 38, 94, .12);
  --radius-lg: 34px;
  --radius-md: 24px;
  --radius-sm: 16px;
  --container: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--cream-2);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; }
.container { width: var(--container); margin-inline: auto; }
.skip-link { position: fixed; left: 16px; top: -50px; z-index: 999; background: var(--ink); color: white; padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { top: 16px; }

.announcement {
  min-height: 36px; display: flex; align-items: center; justify-content: center; gap: 12px;
  background: var(--blue); color: white; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
}
.announcement-dot { width: 3px; height: 3px; border-radius: 99px; background: rgba(255,255,255,.8); }
.site-header {
  position: sticky; top: 0; z-index: 50; background: rgba(255,250,243,.86); backdrop-filter: blur(18px);
  border-bottom: 1px solid transparent; transition: .25s ease;
}
.site-header.scrolled { border-bottom-color: var(--line); box-shadow: 0 10px 40px rgba(22,37,90,.06); }
.nav-wrap { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; }
.brand-mark { width: 31px; height: 31px; display: grid; place-items: center; color: var(--blue); }
.brand-mark svg { width: 100%; height: 100%; }
.brand-text { font-family: Georgia, "Times New Roman", serif; font-size: 28px; font-weight: 500; letter-spacing: -.03em; }
.site-nav { display: flex; align-items: center; gap: 28px; font-size: 14px; font-weight: 600; }
.site-nav > a:not(.nav-cta) { position: relative; padding: 10px 0; }
.site-nav > a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:3px; height:1px; background:var(--blue); transition:.25s; }
.site-nav > a:not(.nav-cta):hover::after { right:0; }
.nav-cta { border: 1px solid var(--blue); border-radius: 999px; padding: 11px 18px; color: var(--blue); transition: .2s ease; }
.nav-cta:hover { background: var(--blue); color: white; transform: translateY(-1px); }
.menu-toggle { display:none; border:0; background:transparent; width:42px; height:42px; position:relative; }
.menu-toggle span { position:absolute; left:9px; width:24px; height:1.5px; background:var(--ink); transition:.25s; }
.menu-toggle span:first-child { top:16px; }
.menu-toggle span:last-child { top:24px; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }

.section-shell { overflow: hidden; }
.hero { position: relative; background: radial-gradient(circle at 78% 16%, rgba(44,60,105,.09), transparent 34%), linear-gradient(180deg, #fffaf3 0%, #f8f1e7 100%); }
.hero::before { content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(44,60,105,.09); border-radius:50%; right:-260px; top:70px; }
.hero-grid { min-height: 720px; display:grid; grid-template-columns: 1.04fr .96fr; gap: 64px; align-items:center; padding: 72px 0 86px; }
.eyebrow { margin:0 0 18px; color:var(--blue); font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing:-.045em; line-height:1.02; }
h1 { font-size: clamp(52px, 6vw, 82px); margin-bottom: 26px; max-width: 760px; }
h1 em { color: var(--blue); font-weight: 500; }
.hero h1 em { color: #6076a6; }
.hero-lead { max-width: 620px; font-size: 18px; color: var(--muted); margin-bottom: 32px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-bottom: 38px; }
.btn { border:0; cursor:pointer; border-radius:999px; padding:15px 23px; font-weight:750; font-size:14px; transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--blue); color:white; box-shadow: 0 10px 28px rgba(44,60,105,.20); }
.btn-primary:hover { box-shadow:0 15px 36px rgba(44,60,105,.27); }
.btn-secondary { color:var(--ink); background:transparent; border:1px solid var(--line); }
.btn-secondary:hover { background:white; }
.btn-light { background:white; color:var(--blue-dark); }
.hero-proof { display:flex; align-items:stretch; gap:0; border-top:1px solid var(--line); max-width:650px; padding-top:22px; }
.hero-proof div { padding-right:28px; margin-right:28px; border-right:1px solid var(--line); }
.hero-proof div:last-child { border-right:0; padding-right:0; margin-right:0; }
.hero-proof strong { display:block; font-family:Georgia,serif; font-size:22px; color:var(--blue-dark); }
.hero-proof span { display:block; font-size:12px; color:var(--muted); margin-top:2px; }

.hero-visual { position:relative; min-height:560px; }
.moon-orbit { position:absolute; width:470px; height:470px; border-radius:50%; border:1px dashed rgba(44,60,105,.24); left:50%; top:50%; transform:translate(-48%,-50%); }
.moon-orbit::before { content:""; position:absolute; width:14px; height:14px; border-radius:50%; background:var(--blue); left:36px; top:72px; box-shadow: 320px 310px 0 -4px rgba(44,60,105,.42); }
.visual-card { position:absolute; border-radius:28px; background:white; box-shadow:var(--shadow); border:1px solid rgba(21,35,75,.08); }
.card-main { width:340px; left:68px; top:58px; transform:rotate(-4deg); animation:floatMain 6s ease-in-out infinite; }
.card-photo { height:330px; border-radius:24px 24px 0 0; background:#e8d8ca; position:relative; overflow:hidden; }
.mini-photo { position:absolute; display:block; border:9px solid #fff; box-shadow:0 8px 20px rgba(33,42,70,.12); background:linear-gradient(145deg,#9fb8e8,#375daf); }
.mini-1 { width:126px;height:154px;left:34px;top:34px;transform:rotate(-7deg); }
.mini-1::after { content:""; position:absolute; inset:18px; border-radius:50% 50% 44% 44%; background:radial-gradient(circle at 50% 32%,#f5d6bf 0 14%,#1c2d66 15% 35%,#f5d6bf 36% 52%,#2947a0 53%); }
.mini-2 { width:122px;height:150px;right:30px;top:76px;transform:rotate(6deg); background:linear-gradient(145deg,#f2c2b0,#e68673); }
.mini-2::after { content:""; position:absolute; width:66px;height:66px;border-radius:50%;background:#f8e2d2;left:18px;top:24px;box-shadow:30px 32px 0 -14px #8a2940; }
.mini-3 { width:112px;height:106px;left:105px;bottom:25px;transform:rotate(2deg);background:linear-gradient(145deg,#324d8c,#17244b); }
.tape { position:absolute; width:56px; height:18px; background:rgba(255,244,213,.78); backdrop-filter:blur(4px); }
.tape-1 { left:78px; top:29px; transform:rotate(12deg); }
.tape-2 { right:54px; top:72px; transform:rotate(-8deg); }
.handwritten { position:absolute; right:20px; bottom:23px; font-family:cursive; font-size:21px; color:var(--blue-dark); transform:rotate(-5deg); }
.visual-caption { padding:18px 20px 21px; }
.visual-caption span { display:block; font-family:Georgia,serif; font-size:21px; }
.visual-caption small { color:var(--muted); }
.card-bookmark { width:174px; right:8px; bottom:42px; transform:rotate(8deg); animation:floatBookmark 7s ease-in-out infinite; }
.bookmark-art { margin:14px; min-height:312px; border-radius:18px; background:var(--blue); color:white; padding:32px 20px; text-align:center; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:18px; overflow:hidden; }
.bookmark-art::before,.bookmark-art::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.3); border-radius:50%; }
.bookmark-art::before { width:180px;height:180px;right:-120px;top:-60px; }
.bookmark-art::after { width:130px;height:130px;left:-95px;bottom:20px; }
.bookmark-hole { position:absolute; top:14px; width:9px;height:9px;border-radius:50%;border:1px solid white; }
.bookmark-stars { font-size:12px; opacity:.9; }
.bookmark-art strong { font-family:Georgia,serif; font-weight:500; font-size:25px; line-height:1.05; }
.bookmark-art small { opacity:.75; letter-spacing:.1em; text-transform:uppercase; font-size:9px; }
.float-note { position:absolute; background:white; border-radius:999px; padding:11px 16px; font-size:12px; font-weight:700; box-shadow:0 12px 30px rgba(18,38,91,.12); }
.note-one { left:8px; bottom:68px; transform:rotate(-3deg); }
.note-two { right:15px; top:40px; color:var(--blue); transform:rotate(3deg); }
@keyframes floatMain { 0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(-2.8deg) translateY(-8px)} }
@keyframes floatBookmark { 0%,100%{transform:rotate(8deg) translateY(0)}50%{transform:rotate(6deg) translateY(10px)} }

.trust-strip { background:var(--ink); color:white; }
.trust-grid { min-height:66px; display:flex; align-items:center; justify-content:center; gap:22px; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
.trust-grid i { width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,.4); }
.section { padding:112px 0; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:42px; }
.section-heading h2,.custom-copy h2,.story-copy h2,.faq-intro h2 { font-size:clamp(40px,4.8vw,64px); margin-bottom:0; }
.section-heading > p { color:var(--muted); max-width:430px; margin-bottom:8px; }
.section-heading.compact { margin-bottom:34px; }
.filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; }
.filter-btn { border:1px solid var(--line); background:transparent; color:var(--ink); border-radius:999px; padding:10px 16px; cursor:pointer; font-size:13px; font-weight:700; }
.filter-btn.active { background:var(--ink); color:white; border-color:var(--ink); }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.product-card { background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, opacity .25s; }
.product-card:hover { transform:translateY(-5px); box-shadow:0 22px 55px rgba(20,38,94,.11); }
.product-card.is-hidden { display:none; }
.product-media { min-height:390px; position:relative; overflow:hidden; display:grid; place-items:center; }
.product-media::after { content:""; position:absolute; inset:auto -80px -130px auto; width:240px; height:240px; border-radius:50%; border:1px solid rgba(44,60,105,.13); }
.product-media-blue { background:#dfe7f7; }
.product-media-cream { background:#efe4d7; }
.product-media-night { background:#182859; }
.product-media-peach { background:#efd6cb; }
.pill { position:absolute; left:18px; top:18px; z-index:2; background:rgba(255,255,255,.82); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.65); border-radius:999px; padding:7px 11px; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--blue-dark); }
.pill-light { background:rgba(255,255,255,.12); color:white; border-color:rgba(255,255,255,.2); }
.bookmark { width:130px; height:285px; border-radius:8px 8px 18px 18px; position:absolute; display:grid; place-items:center; text-align:center; box-shadow:0 18px 38px rgba(27,42,91,.18); }
.bookmark span { font-family:Georgia,serif; font-size:21px; line-height:1.05; }
.bookmark-a { background:var(--blue); color:white; transform:rotate(-7deg) translate(-42px,-4px); }
.bookmark-a::before { content:""; position:absolute; width:9px;height:9px;border-radius:50%;border:1px solid white;top:13px; }
.bookmark-b { background:#fffaf3; color:var(--blue-dark); transform:rotate(8deg) translate(48px,6px); }
.bookmark-b::after { content:"✦"; position:absolute; bottom:24px; color:var(--blue); }
.bookmark-night { position:relative; background:#f6f0e8; color:#1b2b60; transform:rotate(-5deg); }
.bookmark-night::before { content:"☾"; position:absolute; top:38px; font-size:48px; color:var(--blue); }
.bookmark-night span { margin-top:85px; }
.bookmark-night small { position:absolute; bottom:25px; color:var(--blue); }
.frame-art { width:300px; height:300px; background:#fffaf3; border:1px solid rgba(21,35,75,.13); box-shadow:0 20px 45px rgba(30,44,80,.14); transform:rotate(2deg); padding:28px; position:relative; }
.frame-photo { display:block; height:175px; background:linear-gradient(135deg,#8aa2d8,#244795); }
.frame-photo::after { content:""; display:block; width:96px;height:96px;border-radius:50% 50% 46% 46%; background:radial-gradient(circle at 50% 30%,#f4cfb9 0 16%,#182a68 17% 38%,#f4cfb9 39% 55%,#b57a65 56%); margin:35px auto 0; }
.frame-note { display:block; font-family:Georgia,serif; font-size:23px; margin-top:18px; }
.frame-date { position:absolute; right:27px; bottom:22px; font-size:10px; letter-spacing:.12em; color:var(--blue); }
.gift-card-art { width:310px; height:245px; background:#fffaf3; box-shadow:0 18px 45px rgba(69,39,35,.13); transform:rotate(-4deg); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; position:relative; padding:24px; }
.gift-card-art::before { content:"✦"; position:absolute; top:24px; color:var(--blue); }
.gift-card-art strong { font-family:Georgia,serif; font-weight:500; font-size:30px; line-height:1.03; }
.gift-card-art small { color:var(--muted); margin-top:12px; }
.gift-ribbon { position:absolute; width:58px;height:18px;background:#e7c9a7;top:-8px;transform:rotate(4deg);opacity:.8; }
.product-info { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:20px 22px 22px; }
.product-info h3 { margin-bottom:3px; font-family:Georgia,serif; font-size:23px; font-weight:500; }
.product-info p { margin-bottom:0; color:var(--muted); font-size:13px; }
.icon-btn { width:43px;height:43px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:19px;color:var(--blue);transition:.2s; }
.icon-btn:hover { background:var(--blue); color:white; border-color:var(--blue); transform:rotate(6deg); }

.custom-section { background:#f2eadf; overflow:hidden; }
.custom-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:82px; align-items:center; }
.custom-visual { min-height:560px; position:relative; }
.arch { position:absolute; width:380px; height:520px; border-radius:190px 190px 24px 24px; background:var(--blue); left:50%; top:50%; transform:translate(-50%,-50%); overflow:hidden; }
.arch::before { content:""; position:absolute; width:260px;height:260px;border:1px solid rgba(255,255,255,.22);border-radius:50%;right:-120px;top:-70px; }
.arch::after { content:"✦"; position:absolute; left:42px; bottom:42px; color:white; font-size:46px; opacity:.9; }
.paper-stack { position:absolute; background:#fffaf3; box-shadow:0 20px 50px rgba(26,37,75,.18); }
.paper-one { width:270px; min-height:180px; left:10px; top:88px; transform:rotate(-7deg); padding:34px; font-family:Georgia,serif; font-size:25px; line-height:1.18; }
.paper-two { width:240px; min-height:280px; right:0; bottom:62px; transform:rotate(6deg); padding:32px; color:var(--blue-dark); display:flex; flex-direction:column; justify-content:center; }
.paper-two strong { font-family:Georgia,serif; font-size:36px; line-height:1.02; font-weight:500; }
.tiny-moon { font-size:42px; color:var(--blue); margin-bottom:18px; }
.scribble { position:absolute; right:34px; top:24px; font-family:cursive; font-size:64px; color:var(--blue); transform:rotate(18deg); }
.custom-copy p:not(.eyebrow) { color:var(--muted); font-size:17px; }
.check-list { list-style:none; padding:0; margin:28px 0 30px; display:grid; gap:12px; }
.check-list li { position:relative; padding-left:28px; }
.check-list li::before { content:"✦"; position:absolute; left:0; top:-1px; color:var(--blue); }

.how-section { background:var(--cream-2); }
.steps-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.step-card { border-top:1px solid var(--line); padding:24px 12px 0 0; min-height:220px; }
.step-card span { display:inline-grid; place-items:center; width:38px;height:38px;border-radius:50%;background:#edf0f6;color:var(--blue);font-weight:800;font-size:12px;margin-bottom:38px; }
.step-card h3 { font-family:Georgia,serif; font-weight:500; font-size:24px; line-height:1.08; margin-bottom:12px; }
.step-card p { color:var(--muted); font-size:14px; }

.story-section { background:var(--ink); color:white; position:relative; overflow:hidden; }
.story-section::after { content:""; position:absolute; width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.08);right:-180px;bottom:-260px; }
.story-grid { display:grid; grid-template-columns:1fr .8fr; gap:110px; align-items:center; }
.story-copy .eyebrow { color:#bdc9e2; }
.story-copy h2 { color:white; margin-bottom:28px; }
.story-copy p:not(.eyebrow) { color:rgba(255,255,255,.68); max-width:620px; }
.signature { margin-top:30px; font-family:Georgia,serif; font-size:27px; }
.signature span { color:#bdc9e2; }
.story-quote { border-left:1px solid rgba(255,255,255,.18); padding-left:50px; position:relative; }
.quote-mark { font-family:Georgia,serif; font-size:110px; line-height:.7; color:#a7b7d5; opacity:.9; }
blockquote { margin:18px 0 30px; font-family:Georgia,serif; font-size:clamp(30px,3.4vw,48px); line-height:1.08; letter-spacing:-.03em; }
.quote-line { width:80px;height:1px;background:#a7b7d5; }

.testimonials-section { background:#f5eee4; }
.testimonial-row { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.testimonial-card { background:rgba(255,255,255,.56); border:1px solid rgba(21,35,75,.10); border-radius:22px; padding:28px; }
.stars { color:var(--blue); letter-spacing:.14em; font-size:11px; margin-bottom:22px; }
.testimonial-card p { font-family:Georgia,serif; font-size:23px; line-height:1.25; }
.testimonial-card span { color:var(--muted); font-size:12px; }

.faq-section { background:var(--cream-2); }
.faq-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:80px; }
.faq-intro p:not(.eyebrow) { color:var(--muted); max-width:360px; }
.accordion details { border-top:1px solid var(--line); }
.accordion details:last-child { border-bottom:1px solid var(--line); }
.accordion summary { list-style:none; cursor:pointer; padding:23px 0; font-family:Georgia,serif; font-size:22px; display:flex; justify-content:space-between; gap:24px; }
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary span { font-family:Inter,sans-serif; color:var(--blue); transition:.2s; }
.accordion details[open] summary span { transform:rotate(45deg); }
.accordion details p { color:var(--muted); padding:0 50px 22px 0; }

.cta-section { padding:0 0 90px; background:var(--cream-2); }
.cta-box { min-height:470px; border-radius:38px; background:var(--blue); color:white; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:55px 30px; position:relative; overflow:hidden; }
.cta-box::before,.cta-box::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.16); border-radius:50%; }
.cta-box::before { width:360px;height:360px;left:-170px;top:-160px; }
.cta-box::after { width:500px;height:500px;right:-240px;bottom:-260px; }
.cta-box .eyebrow { color:#dce2ef; }
.cta-box h2 { font-size:clamp(42px,5vw,66px); margin-bottom:18px; color:white; }
.cta-box p:not(.eyebrow) { color:rgba(255,255,255,.76); max-width:580px; margin-bottom:26px; }
.cta-moon { position:absolute; top:28px; right:40px; font-size:38px; opacity:.8; }

.site-footer { background:#1d2949; color:white; padding:64px 0 22px; }
.footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:50px; }
.footer-brand .brand-mark { color:#9bb1ff; font-size:30px; }
.footer-grid > div { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.footer-grid > div:first-child p { color:rgba(255,255,255,.58); margin-top:8px; }
.footer-grid strong { margin-bottom:7px; font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:#bdc9e2; }
.footer-grid a,.footer-grid span,.footer-link { font-size:13px; color:rgba(255,255,255,.65); }
.footer-link { border:0;background:transparent;padding:0;cursor:pointer; }
.footer-grid a:hover,.footer-link:hover { color:white; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.10); margin-top:48px; padding-top:20px; display:flex; justify-content:space-between; gap:20px; color:rgba(255,255,255,.42); font-size:11px; }
.whatsapp-float { position:fixed; right:24px; bottom:24px; z-index:45; width:56px;height:56px;border-radius:50%;border:0;background:#25D366;color:white;display:grid;place-items:center;box-shadow:0 12px 30px rgba(37,211,102,.28);cursor:pointer;transition:.2s; }
.whatsapp-float:hover { transform:translateY(-3px) scale(1.03); }
.whatsapp-float svg { width:29px;height:29px; }
.toast { position:fixed; left:50%; bottom:24px; transform:translate(-50%,30px); opacity:0; pointer-events:none; background:var(--ink); color:white; padding:12px 16px; border-radius:10px; z-index:100; font-size:12px; transition:.25s; box-shadow:0 12px 30px rgba(0,0,0,.2); }
.toast.show { opacity:1; transform:translate(-50%,0); }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}

@media (max-width: 980px) {
  .announcement { display:none; }
  .site-header { top:0; }
  .menu-toggle { display:block; }
  .site-nav { position:fixed; inset:78px 0 auto 0; background:#fffaf3; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:24px 20px 28px; display:flex; flex-direction:column; align-items:stretch; gap:6px; transform:translateY(-120%); opacity:0; pointer-events:none; transition:.28s; }
  .site-nav.open { transform:translateY(0); opacity:1; pointer-events:auto; }
  .site-nav a { padding:12px 0; }
  .nav-cta { text-align:center; margin-top:8px; }
  .hero-grid { grid-template-columns:1fr; min-height:auto; padding-top:62px; gap:38px; }
  .hero-visual { min-height:520px; max-width:600px; width:100%; margin:auto; }
  .section { padding:88px 0; }
  .custom-grid,.story-grid,.faq-grid { grid-template-columns:1fr; gap:52px; }
  .custom-visual { min-height:520px; }
  .steps-grid { grid-template-columns:repeat(2,1fr); row-gap:32px; }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 700px) {
  :root { --container:min(100% - 28px,1180px); }
  .nav-wrap { min-height:70px; }
  .site-nav { inset:70px 0 auto 0; }
  .brand-text { font-size:25px; }
  h1 { font-size:clamp(44px,13vw,62px); }
  .hero-grid { padding:46px 0 70px; }
  .hero-lead { font-size:16px; }
  .hero-proof { display:grid; grid-template-columns:1fr; gap:12px; }
  .hero-proof div { border-right:0; margin:0; padding:0; display:flex; gap:12px; align-items:baseline; }
  .hero-proof strong { min-width:45px; }
  .hero-visual { min-height:465px; }
  .moon-orbit { width:360px; height:360px; }
  .card-main { width:270px; left:8%; top:48px; }
  .card-photo { height:255px; }
  .mini-1 { width:95px;height:118px;left:26px;top:26px;border-width:7px; }
  .mini-2 { width:92px;height:115px;right:24px;top:58px;border-width:7px; }
  .mini-3 { width:82px;height:78px;left:84px;bottom:18px;border-width:7px; }
  .handwritten { font-size:17px; }
  .visual-caption { padding:14px 16px 17px; }
  .visual-caption span { font-size:18px; }
  .card-bookmark { width:138px; right:0; bottom:24px; }
  .bookmark-art { min-height:245px; padding:26px 12px; }
  .bookmark-art strong { font-size:20px; }
  .note-one { left:0; bottom:36px; font-size:10px; }
  .note-two { top:17px; right:4px; }
  .trust-grid { justify-content:flex-start; overflow-x:auto; scrollbar-width:none; padding:0 14px; }
  .trust-grid span { white-space:nowrap; }
  .section-heading { flex-direction:column; align-items:flex-start; gap:14px; }
  .section-heading h2,.custom-copy h2,.story-copy h2,.faq-intro h2 { font-size:clamp(38px,11vw,54px); }
  .product-grid { grid-template-columns:1fr; }
  .product-media { min-height:340px; }
  .custom-visual { min-height:460px; }
  .arch { width:285px; height:405px; }
  .paper-one { width:220px; min-height:155px; left:0; top:62px; font-size:20px; padding:28px; }
  .paper-two { width:195px; min-height:235px; right:0; bottom:38px; padding:25px; }
  .paper-two strong { font-size:29px; }
  .steps-grid,.testimonial-row { grid-template-columns:1fr; }
  .step-card { min-height:auto; }
  .step-card span { margin-bottom:22px; }
  .story-quote { border-left:0; border-top:1px solid rgba(255,255,255,.18); padding:40px 0 0; }
  .faq-grid { gap:30px; }
  .cta-section { padding-bottom:50px; }
  .cta-box { border-radius:26px; min-height:430px; padding:46px 22px; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .footer-bottom { flex-direction:column; }
  .whatsapp-float { width:52px;height:52px;right:16px;bottom:16px; }
  .toast { bottom:80px; width:calc(100% - 28px); text-align:center; }
}

/* Catalog and bookmark atelier */
html { scrollbar-gutter: stable; }
[hidden] { display: none !important; }
.brand-logo { width:58px; height:58px; object-fit:contain; flex-shrink:0; }
.footer-brand .brand-logo { background:var(--cream-2); border-radius:14px; padding:3px; }
.catalog-intro-line { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:28px; font-size:13px; color:var(--muted); }
.catalog-intro-line a { color:var(--blue); font-weight:600; }
.catalog-home-footer { display:flex; justify-content:center; margin-top:40px; }
.bento-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:24px; }
.bento-grid .product-card { min-width:0; border-radius:26px; background:var(--paper); transition:box-shadow .25s; display:block; }
.bento-grid .product-card:hover { transform:none; box-shadow:0 14px 45px rgba(20,38,94,.09); }
.bento-grid .product-card:nth-child(6n+1), .bento-grid .product-card:nth-child(6n+4) { grid-column:span 2; }
.bento-grid .product-media { display:grid; width:100%; height:360px; min-height:0; border:0; border-radius:25px 25px 0 0; cursor:pointer; color:var(--ink); padding:0; font:inherit; text-align:inherit; }
.product-media > div[aria-hidden="true"] { display:contents; }
.product-media-paper { background:#e9e3d9; }
.product-media::after { pointer-events:none; }
.product-media .pill { z-index:2; font-size:9px; max-width:calc(100% - 36px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.media-open-hint { position:absolute; right:16px; bottom:16px; z-index:3; display:flex; align-items:center; gap:14px; background:rgba(255,250,243,.82); color:var(--ink); border:1px solid rgba(255,255,255,.5); border-radius:999px; padding:9px 13px; font-size:11px; backdrop-filter:blur(8px); }
.bento-grid .product-info { display:flex; justify-content:space-between; align-items:start; padding:24px 24px 10px; gap:16px; min-height:128px; }
.product-info > div:first-child { min-width:0; }
.product-info h3 { font-size:24px; line-height:1.15; overflow-wrap:anywhere; }
.product-info .product-eyebrow { color:var(--blue); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; margin-bottom:10px; }
.product-info p:not(.product-eyebrow):not(.catalog-price) { font-size:12px; margin-top:8px; }
.product-price-block { flex-shrink:0; text-align:right; max-width:110px; }
.product-info .catalog-price { color:var(--ink); font-weight:600; font-size:12px; margin:0; }
.availability { display:block; margin-top:7px; font-size:10px; color:var(--muted); }
.availability-sold-out { color:#8a4d37; }
.product-details-trigger { display:flex; width:calc(100% - 48px); margin:0 24px; padding:15px 0 19px; align-items:center; justify-content:space-between; border:0; border-top:1px solid var(--line); background:none; color:var(--ink); font-size:12px; font-weight:600; cursor:pointer; }
.product-details-trigger span { color:var(--blue); font-size:22px; font-weight:400; line-height:1; }
.catalog-image { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; }
.catalog-placeholder { font:40px Georgia,serif; color:var(--blue); }
/* One shared stage preserves the exact uploaded artwork without synthesizing it. */
.bookmark-scene { position:relative; width:100%; height:100%; min-height:360px; display:grid; place-items:center; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 25% 20%,#fbf7ef 0,transparent 60%),linear-gradient(135deg,#eee6d9,#ded7ca); }
.bookmark-scene::before { content:""; position:absolute; inset:-50%; z-index:-1; transform:rotate(-30deg); background:repeating-linear-gradient(90deg,transparent 0 140px,rgba(80,66,37,.045) 150px 205px,transparent 240px 380px); filter:blur(6px); }
.bookmark-model { width:var(--bookmark-width,100px); aspect-ratio:var(--bookmark-ratio,1/3); position:relative; max-height:84%; background:#fbf7ef; transform:rotate(-9deg); border-radius:3px; border:1px solid rgba(74,60,35,.18); box-shadow:2px 2px 0 #c1b8a7,5px 9px 11px rgba(58,43,20,.15),22px 28px 32px rgba(58,43,20,.23); overflow:hidden; transition:transform .45s ease; }
.product-open:hover .bookmark-model { transform:rotate(-5deg) translateY(-4px); }
.bookmark-model.edge-rounded { border-radius:7px; }
.bookmark-model img { width:100%; height:100%; position:absolute; inset:0; object-fit:contain; }
.bookmark-model::after { content:""; position:absolute; inset:0; pointer-events:none; border:1px solid rgba(255,255,255,.3); background:linear-gradient(110deg,rgba(255,255,255,.12),transparent 35%,rgba(54,37,13,.045)); border-radius:inherit; }
.bookmark-model.finish-gloss::after { background:linear-gradient(115deg,transparent 15%,rgba(255,255,255,.5) 32%,rgba(255,255,255,.04) 44%,transparent 70%); }
.bookmark-unprinted { height:100%; position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:space-evenly; text-align:center; color:var(--blue); }
.bookmark-unprinted > span { font-size:40px; }
.bookmark-unprinted strong { font:23px/.95 Georgia,serif; }
.bookmark-unprinted small { font-size:8px; letter-spacing:.2em; }
.scene-orbit { width:240px; height:240px; border:1px solid rgba(98,78,49,.1); position:absolute; right:-130px; bottom:-130px; border-radius:50%; pointer-events:none; }
.scene-caption { position:absolute; left:23px; bottom:24px; font-size:8px; color:#746955; letter-spacing:.18em; writing-mode:vertical-rl; transform:rotate(180deg); }
.scene-dimension { position:absolute; right:22px; top:22px; font-size:9px; color:#746955; letter-spacing:.06em; }
/* Product details occupy a top-layer dialog, never a grid row. */
body.product-modal-open { overflow:hidden; }
.product-dialog { width:min(1060px,calc(100% - 40px)); max-width:none; max-height:90dvh; border:1px solid var(--line); padding:0; border-radius:28px; color:var(--ink); background:var(--paper); box-shadow:0 30px 100px rgba(15,25,57,.3); }
.product-dialog::backdrop { background:rgba(16,25,47,.48); backdrop-filter:blur(5px); }
.dialog-close { position:sticky; float:right; top:14px; right:14px; margin:14px 14px -58px 0; width:40px; height:40px; z-index:6; background:var(--paper); border:1px solid var(--line); border-radius:50%; cursor:pointer; color:var(--ink); }
.product-dialog-layout { display:grid; grid-template-columns:1fr 1fr; align-items:start; }
.product-gallery { background:#ebe5da; display:grid; gap:20px; padding:24px; }
.gallery-slide { margin:0; position:relative; overflow:hidden; border-radius:16px; background:#f2ece2; display:grid; place-items:center; min-height:380px; }
.gallery-slide > .bookmark-scene { height:420px; }
.gallery-slide > .catalog-image { position:relative; height:360px; object-fit:contain; }
.gallery-slide > div[aria-hidden="true"] { height:360px; display:grid; place-items:center; }
.gallery-slide figcaption { width:100%; padding:12px 16px; text-align:center; font-size:10px; color:var(--muted); background:var(--paper); }
.gallery-photo img { width:100%; max-height:480px; object-fit:contain; }
.product-dialog-copy { padding:60px 36px 36px; position:sticky; top:0; }
.product-dialog-copy h2 { font:38px/1.08 Georgia,serif; margin-bottom:20px; }
.dialog-price { font-weight:600; margin:0; }
.product-description { white-space:pre-line; margin:25px 0; font-size:14px; color:var(--muted); }
.product-dialog-copy dl { margin:0; font-size:12px; }
.product-dialog-copy dl > div { display:grid; grid-template-columns:100px 1fr; gap:16px; padding:12px 0; border-top:1px solid var(--line); }
.product-dialog-copy dt { font-weight:600; }
.product-dialog-copy dd { margin:0; white-space:pre-line; overflow-wrap:anywhere; }
.mockup-note { font-size:11px; color:var(--muted); margin-top:24px; }
.catalog-order { width:100%; border:0; background:var(--blue); color:white; margin-top:20px; font-size:12px; padding:15px; justify-content:space-between; }
/* Full catalog */
.catalog-page .section { padding-top:48px; }
.product-page-back { padding-top:48px; }
.product-page .product-dialog-layout { padding-top:24px; }
.catalog-back { display:inline-block; color:var(--muted); font-size:12px; margin-bottom:48px; }
.catalog-page-heading { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-bottom:48px; }
.catalog-page-heading h1 { font-size:clamp(44px,6vw,76px); margin:0; }
.catalog-page-heading > p { color:var(--muted); font-size:14px; line-height:1.8; }
.catalog-toolbar { display:flex; gap:24px; align-items:end; justify-content:space-between; flex-wrap:wrap; scroll-margin-top:110px; }
.catalog-toolbar .filters { margin:0; }
.catalog-fields { display:flex; gap:12px; flex-wrap:wrap; }
.catalog-search { display:grid; gap:8px; font-size:11px; font-weight:600; }
.catalog-search input,.catalog-search select { max-width:100%; padding:12px; color:var(--ink); font:inherit; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.catalog-search input { width:240px; }
.catalog-search select { width:200px; }
.catalog-status { display:flex; align-items:center; gap:16px; min-height:65px; font-size:12px; color:var(--muted); }
.catalog-status p { margin:0; }
.catalog-reset { border:0; background:none; color:var(--blue); text-decoration:underline; cursor:pointer; padding:8px; font-size:12px; }
.catalog-empty,.catalog-error { border:1px dashed var(--line); border-radius:16px; padding:32px; text-align:center; }
.catalog-error { color:#9c4229; }
.catalog-pagination { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:40px; font-size:13px; }
.catalog-pagination a { padding:12px 20px; border:1px solid var(--line); border-radius:999px; color:var(--blue); }
.bento-grid[aria-busy="true"] { opacity:.6; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
@media (max-width:1000px) {
  .bento-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bento-grid .product-card:nth-child(n) { grid-column:auto; }
  .bento-grid .product-card:first-child { grid-column:span 2; }
  .product-info { flex-wrap:wrap; }
  .catalog-page-heading { align-items:start; }
}
@media (max-width:650px) {
  .catalog-intro-line { align-items:start; flex-direction:column; gap:12px; }
  .bento-grid { grid-template-columns:1fr; gap:20px; }
  .bento-grid .product-card:nth-child(n) { grid-column:auto; }
  .bento-grid .product-media { height:340px; }
  .bento-grid .product-info { padding:20px 20px 10px; flex-wrap:nowrap; }
  .product-info h3 { font-size:22px; }
  .product-price-block { max-width:95px; }
  .product-details-trigger { width:calc(100% - 40px); margin:0 20px; }
  .catalog-page-heading { flex-direction:column; gap:20px; margin-bottom:30px; }
  .catalog-back { margin-bottom:30px; }
  .catalog-toolbar,.catalog-fields { display:grid; width:100%; }
  .catalog-fields { grid-template-columns:1fr; }
  .catalog-search input,.catalog-search select { width:100%; }
  .catalog-toolbar .filters { gap:6px; flex-wrap:wrap; }
  .product-dialog { width:calc(100% - 20px); max-height:94dvh; border-radius:20px; }
  .product-dialog-layout { grid-template-columns:1fr; }
  .product-gallery { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding:16px; }
  .gallery-slide { flex:0 0 100%; scroll-snap-align:center; min-height:340px; }
  .gallery-slide > .bookmark-scene { height:360px; }
  .product-dialog-copy { position:static; padding:28px 24px; }
  .product-dialog-copy h2 { font-size:32px; }
  .catalog-pagination { font-size:11px; gap:8px; }
  .catalog-pagination a { padding:10px 12px; }
}
@media (prefers-reduced-motion:reduce) { .bookmark-model { transition:none; } }
.bookmark-existing-art { width:100%; height:100%; min-height:360px; display:grid; place-items:center; background:linear-gradient(145deg,#ece8dc,#dad4c8); position:relative; }
.bookmark-existing-art .bookmark-night { position:relative; }
.catalog-page-heading h1 { font-size:clamp(42px,5vw,68px); max-width:760px; }
.catalog-page-heading > p { max-width:300px; flex-shrink:0; }
.footer-grid .footer-brand .brand-text { font-size:28px; color:var(--cream-2); }
