:root {
  --paper: #f5f7fc; --white: #fff; --ink: #17243d; --muted: #69758c;
  --line: #1b31551c; --gold: #be965b; --sage: #e7edf8; --rose: #f0e9e5;
  --blue: #4068e8; --blue-dark: #20386f; --blue-soft: #e9efff; --blue-ink: #eaf0ff;
  --serif: 'EB Garamond', Georgia, serif; --sans: 'DM Sans', Arial, sans-serif;
  --gutter: clamp(22px, 5vw, 80px); --max: 1340px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 16px/1.7 var(--sans); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: #4169e8; color: white; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
[hidden] { display: none !important; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
em { font-weight: 400; }
.wrap { width: min(var(--max), calc(100% - var(--gutter)*2)); margin-inline: auto; }
.eyebrow { display: block; font-size: 10px; line-height: 1.5; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; }
.display { font-size: clamp(60px, 6.7vw, 102px); line-height: .97; letter-spacing: -.045em; }
.section-title { font-size: clamp(45px, 5.1vw, 76px); line-height: 1.02; letter-spacing: -.035em; }
.copy { color: var(--muted); font-size: 15px; line-height: 1.85; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 26px; min-height: 53px; padding: 0 25px; border: 1px solid var(--ink); border-radius: 3px; background: var(--ink); color: var(--white); font-size: 11px; font-weight: 500; letter-spacing: .07em; text-decoration: none; transition: background .25s, transform .25s, box-shadow .25s; }
.btn:hover { background: #304766; transform: translateY(-2px); box-shadow: 0 12px 28px #17243d20; }
.btn.blue-button { background: linear-gradient(115deg,#4b73ef,#3155cb); border-color: #3c63df; box-shadow: 0 10px 24px #4168e82b; }
.btn.blue-button:hover { background: linear-gradient(115deg,#3155cb,#2242b0); }
.btn.light { background: var(--white); color: var(--ink); border-color: var(--white); }
.btn.outline { background: transparent; color: var(--ink); border-color: var(--line); }
.btn.outline:hover { background: #e9e6dc; }
.arrow { font-size: 19px; line-height: 1; font-weight: 400; }
.text-link { display: inline-flex; align-items: center; gap: 20px; font-size: 12px; font-weight: 500; text-decoration: none; padding-bottom: 8px; border-bottom: 1px solid currentColor; transition: gap .2s; }
.text-link:hover { gap: 28px; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 25px; margin-top: 30px; }
.site-header { position: sticky; top: 0; z-index: 30; background: #f9faffef; border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.nav { display: flex; align-items: center; justify-content: space-between; min-height: 88px; gap: 30px; }
.logo { display: inline-flex; align-items: baseline; gap: 4px; color: var(--ink); text-decoration: none; font: 500 43px/1 var(--serif); letter-spacing: -.07em; position:relative; }
.logo span { font: 16px/1 var(--sans); color: var(--blue); margin-left: 1px; }
.logo small { font: 8px/1 var(--sans); letter-spacing: .19em; text-transform: uppercase; color: var(--muted); margin-left: 9px; }
.nav-links { display: flex; gap: clamp(19px, 2.2vw, 36px); align-items: center; }
.nav-links > a { text-decoration: none; font-size: 12px; color: #5e695f; position: relative; }
.nav-links > a[aria-current=page] { color: var(--ink); }
.nav-links > a[aria-current=page]:after { content: ''; position: absolute; width: 4px; height: 4px; border-radius: 50%; background: var(--gold); bottom: -9px; left: calc(50% - 2px); }
.nav-links > a:hover { color: var(--blue); }
.nav-links .login { margin-left: 4px; padding: 12px 16px; border: 1px solid #4168e84a; border-radius: 999px; color: var(--blue-dark); font-weight: 600; background: #edf2ff; box-shadow: inset 0 1px #fff; transition: all .2s; }
.nav-links .login:hover { background: #e0e9ff; border-color: #4168e880; box-shadow: 0 8px 22px #4168e81a; }
.login-icon { color: var(--blue); margin-right: 4px; }
.menu-toggle { display: none; border: 0; background: none; width: 44px; height: 44px; padding: 10px; }
.menu-toggle span { display: block; height: 1px; background: currentColor; margin: 7px 0; transition: transform .2s; }
.skip-link { position: absolute; left: 20px; top: -70px; z-index: 99; background: var(--ink); color: white; padding: 12px 20px; }
.skip-link:focus { top: 5px; }
.hero { position: relative; isolation: isolate; min-height: min(740px, 88svh); display: flex; align-items: center; color: #fffdf4; background: #374330; overflow: hidden; margin: 16px 18px 0; }
.hero-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 53%; }
.hero:after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #152518cf 0%, #17291a9c 37%, #1f2c1920 73%), linear-gradient(0deg,#14231655,transparent 55%); }
.hero-inner { padding-block: 105px 120px; }
.hero .eyebrow { margin-bottom: 33px; color: #f3e7cf; }
.hero h1 { max-width: 720px; font-size: clamp(72px, 7.4vw, 112px); line-height: .94; letter-spacing: -.045em; }
.hero h1 em { display: block; color: #f2dfb8; }
.hero p { margin: 29px 0 33px; max-width: 355px; color: #eeeee3; font-size: 14px; line-height: 1.9; }
.hero-bottom { position: absolute; left: var(--gutter); right: var(--gutter); bottom: 28px; display: flex; justify-content: space-between; gap: 20px; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: #eeeadc; }
.hero-bottom a { text-decoration: none; }
.home-hero { position:relative; isolation:isolate; overflow:hidden; padding:55px 0 87px; min-height:670px; background:radial-gradient(ellipse at 77% 45%,#dce7ff 0,#eef3ff 36%,#f7f8fc 70%); }
.home-hero:before { content:''; position:absolute; z-index:-1; width:580px; height:580px; right:-250px; top:-280px; border:1px solid #4168e825; border-radius:50%; box-shadow:0 0 0 55px #4168e808,0 0 0 110px #4168e806; }
.home-hero-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:7%; align-items:center; min-height:525px; }
.home-hero-copy { padding:14px 0 20px 4%; position:relative; z-index:2; }
.home-hero-copy .eyebrow { color:var(--blue); font-size:9px; font-weight:600; }
.home-hero-copy h1 { margin:26px 0 22px; font-size:clamp(70px,7vw,102px); line-height:.92; letter-spacing:-.052em; }
.home-hero-copy h1 em { color:var(--blue); }
.home-hero-copy > p { max-width:450px; color:#596781; font-size:15px; line-height:1.85; }
.home-hero-copy .hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:26px; margin-top:31px; }
.home-hero-copy .hero-actions .text-link { font-size:11px; color:#384b71; }
.hero-note { display:flex; align-items:center; gap:10px; margin-top:27px; font-size:10px; color:#69758c; letter-spacing:.025em; }
.note-spark { color:var(--gold); font-size:16px; }
.home-hero-art { position:relative; min-height:555px; display:grid; place-items:center; isolation:isolate; }
.hero-glow { position:absolute; z-index:-2; width:440px; height:440px; left:15%; top:9%; border-radius:50%; background:radial-gradient(circle,#b9ccff99,#b9ccff00 70%); filter:blur(8px); }
.home-hero-art:before,.home-hero-art:after { content:''; position:absolute; z-index:-1; width:405px; height:465px; left:25%; top:7%; border:1px solid #466ce82b; border-radius:48% 52% 47% 53%; transform:rotate(-13deg); }
.home-hero-art:after { width:455px; height:510px; left:21%; top:2%; transform:rotate(9deg); border-color:#466ce817; }
.preview-label { position:absolute; top:18px; right:5%; color:#68789c; font-size:8px; letter-spacing:.2em; }
.invite-preview { position:relative; z-index:1; width:min(380px,72%); display:block; padding:10px; background:#fff; color:var(--ink); text-decoration:none; transform:rotate(2deg); border:1px solid #ffffff; box-shadow:0 38px 95px #263f7c32,0 4px 14px #17243d12; transition:transform .35s,box-shadow .35s; }
.invite-preview:hover { transform:rotate(0) translateY(-5px); box-shadow:0 44px 100px #263f7c42,0 6px 18px #17243d15; }
.invite-cover { position:relative; height:380px; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#fff; text-align:center; background:#243656; }
.invite-cover:after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#101c343b,#16233e20 30%,#142039d9); }
.invite-cover img { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; }
.invite-brand,.invite-cover-note,.invite-cover strong,.invite-cover small { position:relative; z-index:1; }
.invite-brand { position:absolute; top:24px; font:italic 25px var(--serif); }
.invite-brand b { color:#efd8a8; font:12px var(--sans); }
.invite-cover-note { margin:95px 0 13px; font:8px var(--sans); letter-spacing:.23em; }
.invite-cover strong { font:italic 55px/.87 var(--serif); letter-spacing:-.035em; }
.invite-cover strong i { font-size:31px; color:#eed9af; }
.invite-cover small { margin-top:19px; font-size:8px; letter-spacing:.2em; }
.invite-preview-foot { min-height:68px; padding:12px 12px 9px 16px; display:flex; justify-content:space-between; align-items:center; }
.invite-preview-foot b,.invite-preview-foot small { display:block; }
.invite-preview-foot b { font:italic 18px/1.15 var(--serif); }
.invite-preview-foot small { color:var(--muted); margin-top:5px; font-size:9px; }
.preview-arrow { display:grid; place-items:center; width:37px; height:37px; border:1px solid #4168e849; border-radius:50%; color:var(--blue); font-size:18px; }
.rsvp-float { position:absolute; z-index:2; right:1%; bottom:62px; display:flex; gap:11px; align-items:center; padding:14px 18px 14px 13px; border:1px solid #fff; border-radius:4px; background:#ffffffed; box-shadow:0 16px 45px #263f7c23; animation:float-soft 5s ease-in-out infinite; }
.rsvp-icon { display:grid; place-items:center; width:35px; height:35px; border-radius:50%; background:#e6edff; color:var(--blue); font-weight:700; }
.rsvp-float b,.rsvp-float small { display:block; }
.rsvp-float b { font:16px var(--serif); }
.rsvp-float small { color:var(--muted); font-size:9px; margin-top:3px; }
.sparkle { position:absolute; color:#b28b51; font-size:23px; }
.sparkle-one { top:22%; left:9%; }
.sparkle-two { right:12%; top:34%; font-size:17px; color:var(--blue); }
@keyframes float-soft { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.home-hero .hero-bottom { bottom:25px; color:#69758c; }
.promise-strip { border-block:1px solid #4168e81a; background:#fff; }
.promise-strip .wrap { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:15px; color:#405274; }
.promise-strip span { font-size:10px; letter-spacing:.07em; }
.promise-strip i { color:var(--gold); font-size:14px; font-style:normal; }
.collections-home { padding:105px 0 115px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:40px; }
.section-heading .eyebrow { color:var(--blue); margin-bottom:18px; }
.section-heading h2 { font-size:clamp(48px,5.7vw,80px); }
.section-heading h2 em { color:var(--blue); }
.section-heading .copy { max-width:330px; padding-bottom:8px; }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.invitation-catalog { padding-bottom:75px; }
.invitation-catalog .inspiration-head { margin-top:15px; }
.invitation-how { background:#e8edfb; padding:10px 0; }
.invitation-how .detail-row { border-color:#20386f26; }
.product-card { position:relative; min-height:330px; padding:20px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; text-decoration:none; isolation:isolate; color:white; background:#344d87; }
.product-card:before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(0deg,#101d39d9 0,#14234428 60%,#1626430b); transition:opacity .3s; }
.product-card:hover:before { opacity:.8; }
.product-card > img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .55s; }
.product-card:hover > img { transform:scale(1.035); }
.product-card.product-kids:before { background:linear-gradient(0deg,#142432cc 0,#16322712 75%); }
.product-tag { position:absolute; top:18px; left:20px; font-size:8px; letter-spacing:.16em; }
.product-card > strong { font:32px/1.02 var(--serif); letter-spacing:-.02em; }
.product-link { margin-top:17px; font-size:9px; letter-spacing:.08em; }
.product-motion { background:radial-gradient(ellipse at 50% 28%,#94aef3,#344d96 68%,#20386e); }
.motion-art { position:absolute; z-index:-1; inset:0; display:grid; place-items:center; background:radial-gradient(circle at 50% 38%,#a7b9eb55,transparent 56%); }
.motion-envelope { display:grid; place-items:center; width:118px; height:150px; border:1px solid #ffffff99; background:linear-gradient(140deg,#fffdf4,#e4eafa); color:var(--blue-dark); font-size:54px; box-shadow:0 16px 46px #08173945; transform:rotate(-7deg); animation:envelope-float 6s ease-in-out infinite; }
.motion-star { position:absolute; top:22%; right:24%; color:#ffe3a7; font-size:32px; animation:star-pulse 3s ease-in-out infinite; }
@keyframes envelope-float { 0%,100%{transform:rotate(-7deg) translateY(0)} 50%{transform:rotate(-2deg) translateY(-9px)} }
@keyframes star-pulse { 0%,100%{opacity:.5;transform:scale(.8)} 50%{opacity:1;transform:scale(1.15)} }
.product-card.product-motion:before { background:linear-gradient(0deg,#101d39e8 0,#14234412 68%); }
.product-events { background:linear-gradient(145deg,#6077b6,#273f7e); }
.product-card.product-events:before { background:linear-gradient(0deg,#142343e8 0,#273f7e05 65%); }
.events-type { position:absolute; z-index:-1; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:25px; background:radial-gradient(ellipse at 50% 42%,#97addf9e,transparent 70%); color:#fff; }
.events-type small { font:8px var(--sans); letter-spacing:.18em; margin-bottom:17px; }
.events-type strong { font:italic 34px/.95 var(--serif); }
.service-band { background:linear-gradient(120deg,#1d315f,#2b4c99 64%,#355bab); color:white; padding:77px 0; position:relative; overflow:hidden; }
.service-band:after { content:'✦'; position:absolute; right:9%; top:-75px; color:#ffffff10; font:290px/1 var(--serif); }
.service-grid { display:grid; grid-template-columns:.6fr 1fr .8fr; gap:35px; align-items:center; position:relative; z-index:1; }
.service-grid .eyebrow { font-size:8px; color:#d8e2ff; }
.service-grid h2 { font-size:clamp(43px,4.6vw,65px); line-height:.97; }
.service-grid h2 em { color:#e9d5ac; }
.service-grid p { color:#e0e7fa; font-size:12px; line-height:1.85; max-width:300px; margin-bottom:21px; }
.service-band .btn.light { color:var(--blue-dark); border:0; }
.signature-strip { padding: 31px 0; border-bottom: 1px solid var(--line); }
.signature-strip .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.signature-strip p { font: italic 23px/1.3 var(--serif); }
.signature-strip small { font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.collection { padding: 115px 0; }
.collection-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9%; align-items: center; }
.collection-copy { max-width: 420px; }
.collection-copy .eyebrow { margin-bottom: 25px; color: #7a826d; }
.collection-copy h2 { margin-bottom: 24px; }
.collection-copy em { color: #7d8969; }
.collection-copy .text-link { margin-top: 30px; }
.collection-image { position: relative; }
.collection-image img { width: 100%; height: 500px; object-fit: cover; object-position: 69% center; border-radius: 190px 190px 4px 4px; }
.collection-image figcaption { display: flex; justify-content: space-between; margin-top: 17px; color: var(--muted); font-size: 10px; letter-spacing: .05em; }
.collection-image figcaption span:last-child { text-transform: uppercase; font-size: 8px; letter-spacing: .14em; }
.home-occasions { border-top: 1px solid var(--line); padding: 68px 0 90px; }
.home-occasions .eyebrow { color: var(--gold); margin-bottom: 20px; }
.occasion-head { display: flex; justify-content: space-between; gap: 30px; align-items: center; margin-bottom: 35px; }
.occasion-head h2 { font-size: clamp(36px, 3.5vw, 52px); line-height: 1.1; }
.occasion-links { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; }
.occasion-link { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; border-top: 1px solid var(--line); text-decoration: none; font: 28px/1.2 var(--serif); }
.occasion-link span { color: var(--gold); font: 18px var(--sans); }
.invitation-cta { padding: 77px 0; background: var(--ink); color: #f4f0e6; }
.invitation-cta .wrap { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.invitation-cta .eyebrow { color: #d4c29b; margin-bottom: 20px; }
.invitation-cta h2 { font-size: clamp(40px,4.7vw,67px); line-height: 1.05; letter-spacing: -.03em; }
.site-footer { padding: 47px 0 22px; }
.footer-top { display: flex; justify-content: space-between; gap: 30px; align-items: start; padding-bottom: 38px; }
.footer-note { max-width: 245px; color: var(--muted); font-size: 12px; margin-top: 13px; }
.footer-links { display: flex; gap: 45px; }
.footer-links div { display: flex; flex-direction: column; gap: 9px; }
.footer-links small { font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 5px; }
.footer-links a { font-size: 12px; text-decoration: none; }
.footer-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { border-top: 1px solid var(--line); padding-top: 20px; display: flex; justify-content: space-between; gap: 15px; font-size: 9px; color: var(--muted); }
.page-intro { padding: 68px 0 65px; }
.breadcrumb { display: flex; gap: 12px; font-size: 10px; color: var(--muted); margin-bottom: 50px; }
.breadcrumb a { text-decoration: none; }
.page-intro .eyebrow { color: var(--gold); margin-bottom: 25px; }
.intro-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 9%; align-items: end; }
.intro-grid .copy { max-width: 370px; padding-bottom: 6px; }
.wide-scene { margin-inline: 18px; position: relative; }
.wide-scene > img { width: 100%; height: clamp(420px, 48vw, 690px); object-fit: cover; }
.scene-caption { position: absolute; bottom: 25px; left: var(--gutter); color: white; font-size: 10px; letter-spacing: .1em; text-shadow: 0 1px 8px #000; }
.story-section { padding: 100px 0; }
.story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; }
.story-grid .section-title { margin: 20px 0 25px; }
.story-grid .copy { max-width: 410px; }
.story-art { position: relative; padding: 40px; background: #e7e5dc; display: flex; align-items: center; justify-content: center; min-height: 560px; }
.story-art > img { max-height: 460px; max-width: 235px; width: 100%; border-radius: 18px; box-shadow: 0 25px 55px #1c291e2b; transform: rotate(-5deg); }
.story-art .art-note { position: absolute; bottom: 20px; right: 30px; font: italic 23px var(--serif); color: #65715c; }
.detail-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 50px; padding: 55px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.detail-row small { font-size: 10px; color: var(--gold); letter-spacing: .1em; }
.detail-row h3 { font-size: 30px; margin: 17px 0 12px; line-height: 1.05; }
.detail-row p { color: var(--muted); font-size: 13px; line-height: 1.8; }
.module-note { margin-top: 18px; font-size: 11px; color: var(--muted); }
.module-note a { text-underline-offset: 3px; }
.inspiration { padding: 90px 0 105px; }
.inspiration-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 38px; }
.inspiration-head h2 { font-size: clamp(39px,4.3vw,60px); line-height: 1.05; }
.inspiration-head p { max-width: 300px; font-size: 13px; color: var(--muted); }
.mood-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.mood { display: block; text-decoration: none; }
.mood-art { display: grid; place-items: center; min-height: 270px; background: var(--mood-bg,#e5e7dc); color: var(--mood-ink,#52624b); overflow: hidden; position: relative; }
.mood-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mood-art .type { position: relative; font: italic 58px/.98 var(--serif); text-align: center; }
.mood-art .type small { display: block; font: 9px var(--sans); letter-spacing: .27em; text-transform: uppercase; margin-bottom: 18px; }
.mood-art:after { content: ''; position: absolute; inset: 18px; border: 1px solid currentColor; opacity: .3; pointer-events: none; }
.mood h3 { font-size: 26px; margin-top: 17px; }
.mood p { font-size: 10px; color: var(--muted); margin-top: 4px; }
.mood:hover h3 { color: var(--gold); }
.kids-page { --ink: #3d513d; --gold: #9a7650; }
.kids-page .page-intro em { color: #8b9577; }
.kids-feature { background: #e7ebdf; padding: 90px 0; }
.kids-feature .story-grid { grid-template-columns: 1.13fr .87fr; }
.kids-feature .feature-image { width: 100%; height: 540px; object-fit: cover; object-position: 72% center; border-radius: 45% 45% 2px 2px; }
.pill { display: inline-block; padding: 7px 12px; border: 1px solid var(--line); border-radius: 30px; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.celebration-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px 20px; padding: 5px 0 100px; }
.celebration-card { text-decoration: none; }
.celebration-card .mood-art { min-height: 325px; }
.celebration-card h2 { font-size: 30px; margin: 15px 0 5px; }
.celebration-card p { font-size: 12px; color: var(--muted); max-width: 300px; }
.celebration-card .arrow { float: right; margin-top: 14px; }
.atelier-steps { padding-bottom: 70px; }
.panel-showcase { background: #e9e7df; padding: 80px 0; }
.panel-showcase .story-grid { grid-template-columns: .8fr 1.2fr; gap: 7%; }
.panel-image { width: 100%; border: 1px solid #d2d5c8; box-shadow: 0 20px 55px #28392f15; }
.faq { padding: 85px 0 100px; }
.faq-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 10%; }
.faq h2 { font-size: 48px; line-height: 1.05; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { position: relative; list-style: none; padding: 22px 28px 22px 0; font-size: 14px; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:after { content: '+'; position: absolute; right: 2px; color: var(--gold); }
.faq details[open] summary:after { content: '−'; }
.faq details p { font-size: 13px; line-height: 1.85; color: var(--muted); padding-bottom: 25px; padding-right: 25px; }
.plans-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; padding-bottom: 25px; }
.plan { display: flex; flex-direction: column; padding: 30px 24px; border: 1px solid var(--line); background: #fffdf799; }
.plan.premium { background: var(--ink); color: var(--white); border-color: var(--ink); }
.plan .eyebrow { color: var(--gold); font-size: 8px; letter-spacing: .14em; min-height: 16px; }
.plan.premium .eyebrow { color: #d4bc8f; }
.plan h2 { font-size: 34px; line-height: 1; margin: 23px 0 15px; }
.price-start { font:11px/1.2 var(--sans); color:var(--muted); margin-bottom:17px; }
.price-start strong { display:block; font:38px/1.05 var(--serif); color:var(--blue-dark); margin-top:7px; letter-spacing:-.025em; }
.plan.premium .price-start { color:#d2dcf2; }
.plan.premium .price-start strong { color:#f0d9ad; }
.plan-limit { font-size: 13px; margin-bottom: 25px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.plan.premium .plan-limit { border-color: #ffffff40; }
.plan ul { margin: 0 0 30px; padding: 0; list-style: none; }
.plan li { padding: 8px 0 8px 16px; position: relative; font-size: 11px; line-height: 1.65; }
.plan li:before { content: '·'; position: absolute; left: 0; color: var(--gold); }
.plan.premium li:before { color: #d4bc8f; }
.plan-foot { margin-top: auto; }
.plan-foot small { display: block; font-size: 10px; margin-bottom: 15px; opacity: .7; }
.plan-foot .btn { padding: 0 15px; width: 100%; font-size: 10px; gap: 12px; }
.plans-caption { font-size: 11px; color: var(--muted); padding-bottom: 25px; max-width: 750px; }
.plan-contact { padding:78px 0; background:#e9efff; }
.plan-contact-grid { display:grid; grid-template-columns:1fr .7fr; gap:10%; align-items:center; }
.plan-contact .eyebrow { color:var(--blue); margin-bottom:17px; }
.plan-contact h2 { font-size:clamp(49px,5.4vw,76px); line-height:.95; }
.plan-contact p { margin-top:18px; max-width:435px; color:#596781; font-size:13px; line-height:1.85; }
.plan-contact-card { min-height:230px; padding:29px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:18px; background:#fff; box-shadow:0 20px 60px #1e35611a; }
.plan-contact-card > span { font:italic 29px/1.1 var(--serif); }
.plan-contact-card small { color:var(--muted); font-size:9px; }
.atelier-manifesto { padding:75px 0; background:linear-gradient(115deg,#e7edff,#f1f4fb); }
.atelier-manifesto-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:8%; align-items:center; }
.atelier-stamp { width:220px; aspect-ratio:1; border:1px solid #4168e859; border-radius:50%; display:grid; place-items:center; position:relative; background:#f9fbff8a; box-shadow:inset 0 0 0 10px #ffffff5c; transform:rotate(-9deg); }
.atelier-stamp:before { content:''; position:absolute; inset:14px; border:1px solid #4168e832; border-radius:50%; }
.atelier-stamp span { text-align:center; color:var(--blue-dark); font:italic 34px/.82 var(--serif); }
.atelier-stamp i { position:absolute; right:27px; bottom:28px; font-size:22px; color:var(--gold); font-style:normal; }
.atelier-manifesto .eyebrow { color:var(--blue); margin-bottom:20px; }
.atelier-manifesto h2 { font-size:clamp(50px,5.5vw,78px); line-height:.93; }
.atelier-manifesto h2 em { color:var(--blue); }
.atelier-manifesto p { max-width:520px; margin:20px 0 21px; color:#596781; font-size:13px; line-height:1.9; }
.atelier-manifesto .text-link { font-size:11px; }
.quote-layout { display:grid; grid-template-columns:.7fr 1fr; gap:9%; align-items:start; padding-bottom:100px; }
.quote-copy { position:sticky; top:125px; padding-top:22px; }
.quote-copy .eyebrow { color:var(--blue); margin-bottom:19px; }
.quote-copy h2 { font-size:clamp(46px,5vw,69px); line-height:.98; }
.quote-copy p { margin-top:23px; }
.quote-copy ol { list-style:none; margin:28px 0 0; padding:0; }
.quote-copy li { display:flex; gap:15px; align-items:center; padding:13px 0; border-top:1px solid var(--line); color:#405274; font-size:11px; }
.quote-copy li b { color:var(--blue); font-size:9px; letter-spacing:.12em; }
.brief-form { padding:35px; border:1px solid #dbe2f0; background:#fff; box-shadow:0 24px 72px #273d6a14; }
.brief-form > h2 { font-size:34px; line-height:1; }
.brief-form > p { color:var(--muted); margin:10px 0 24px; font-size:11px; }
.brief-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px 18px; }
.brief-form .field { display:flex; flex-direction:column; gap:7px; color:#344763; font-size:10px; }
.brief-form .field-wide { grid-column:1/-1; }
.brief-form .field input,.brief-form .field select,.brief-form .field textarea { width:100%; min-height:46px; border:1px solid #d8dfec; border-radius:2px; background:#fafbfe; color:var(--ink); padding:12px; font:12px/1.6 var(--sans); }
.brief-form .field select { appearance:auto; }
.brief-form .field textarea { resize:vertical; min-height:135px; }
.brief-form .field input:focus,.brief-form .field select:focus,.brief-form .field textarea:focus { outline:2px solid #5e7dec; outline-offset:2px; background:white; }
.brief-form .consent-check { display:flex; gap:10px; align-items:flex-start; margin:21px 0 20px; color:#5f6c84; font-size:10px; line-height:1.7; }
.consent-check input { margin-top:3px; accent-color:var(--blue); }
.consent-check a,.legal-copy a { color:#3157c1; text-underline-offset:3px; }
.form-explain,.brief-fallback > small { display:block; margin-top:12px; color:var(--muted); font-size:9px; line-height:1.7; }
.form-status { color:#3157c1 !important; }
.brief-fallback { margin-top:25px; padding-top:24px; border-top:1px solid var(--line); }
.brief-fallback .field textarea { font-size:11px; min-height:180px; }
.brief-fallback .actions { gap:12px; margin-top:13px; }
.brief-fallback .btn { font-size:9px; padding-inline:15px; gap:10px; }
.legal-copy { max-width:920px; padding-bottom:110px; }
.legal-updated { color:var(--muted); font-size:10px; letter-spacing:.07em; padding:17px 0 27px; border-bottom:1px solid var(--line); }
.legal-copy article { padding:28px 0 26px; border-bottom:1px solid var(--line); }
.legal-copy h2 { font-size:30px; margin-bottom:11px; }
.legal-copy p { color:#586680; max-width:790px; font-size:12px; line-height:1.9; margin-top:10px; }
.legal-copy .legal-source { margin-top:26px; font-size:10px; }
.cookie-table { margin:15px 0; padding:17px 20px; background:#ebf0fb; }
.cookie-table > div { display:grid; grid-template-columns:150px 1fr; gap:10px 20px; font-size:11px; }
.cookie-table b { color:#334b7d; }
@media (max-width:1050px) {
  .nav-links { gap: 20px; }
  .nav-links .login { padding: 11px 13px; margin-left: 0; }
  .plans-grid { grid-template-columns: repeat(2,1fr); }
  .hero h1 { font-size: 91px; }
  .collection-grid { gap: 6%; }
  .collection-image img { height: 470px; }
  .product-grid { grid-template-columns: repeat(2,1fr); }
  .service-grid { grid-template-columns:.5fr 1fr; }
  .service-grid > div { grid-column:2; }
  .home-hero-grid { gap:3%; }
  .invite-preview { width:min(360px,78%); }
}
@media (max-width:800px) {
  .nav { min-height: 73px; }
  .logo { font-size: 37px; }
  .menu-toggle { display: block; }
  .nav-links { display: none; position: fixed; top: 73px; left: 0; width: 100%; height: calc(100dvh - 73px); background: var(--paper); padding: 30px var(--gutter); flex-direction: column; align-items: stretch; gap: 0; overflow-y: auto; }
  .nav-links.is-open { display: flex; }
  .nav-links > a { font: 36px/1.2 var(--serif); padding: 17px 0; border-bottom: 1px solid var(--line); }
  .nav-links > a[aria-current=page]:after { display: none; }
  .nav-links .login { width:fit-content; margin-top: 20px; padding:13px 18px; border:1px solid #4168e849; font: 13px var(--sans); }
  .menu-open .menu-toggle span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-open .menu-toggle span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .hero { min-height: 680px; margin: 10px 10px 0; }
  .hero-inner { padding-block: 95px 120px; }
  .hero h1 { font-size: clamp(66px,10vw,90px); max-width: 610px; }
  .home-hero { min-height:unset; padding:45px 0 28px; }
  .home-hero-grid { grid-template-columns:1fr; gap:0; }
  .home-hero-copy { padding:12px 2% 5px; }
  .home-hero-copy h1 { font-size:clamp(73px,11vw,96px); }
  .home-hero-art { min-height:490px; }
  .home-hero .hero-bottom { position:relative; left:auto; right:auto; bottom:auto; margin-top:0; color:#69758c; }
  .signature-strip small { max-width: 150px; text-align: right; }
  .collection { padding: 80px 0; }
  .collection-grid { grid-template-columns: 1fr 1fr; gap: 35px; }
  .collection-image img { height: 400px; }
  .collection-image figcaption { display: block; }
  .collection-image figcaption span { display: block; margin-top: 7px; }
  .intro-grid { grid-template-columns: 1fr; gap: 30px; }
  .intro-grid .copy { max-width: 570px; }
  .story-grid,.kids-feature .story-grid,.panel-showcase .story-grid { grid-template-columns: 1fr; gap: 45px; }
  .story-art { min-height: 500px; }
  .story-grid .copy { max-width: 540px; }
  .detail-row { gap: 25px; }
  .mood-grid { gap: 12px; }
  .mood-art { min-height: 230px; }
  .mood-art .type { font-size: 43px; }
  .celebration-grid { grid-template-columns: repeat(2,1fr); }
  .faq-grid { grid-template-columns: 1fr; gap: 35px; }
  .section-heading { align-items:start; flex-direction:column; gap:17px; }
  .service-grid { grid-template-columns:1fr; gap:18px; }
  .service-grid > div { grid-column:auto; }
  .service-grid .eyebrow { margin-bottom:8px; }
  .plan-contact-grid { grid-template-columns:1fr; gap:30px; }
  .atelier-manifesto-grid { grid-template-columns:.55fr 1fr; gap:7%; }
  .atelier-stamp { width:min(190px,100%); }
  .quote-layout { grid-template-columns:1fr; gap:38px; }
  .quote-copy { position:static; }
}
@media (max-width:560px) {
  .hero { min-height: 680px; }
  .hero-image { object-position: 58% center; }
  .hero:after { background: linear-gradient(90deg,#142217bd,#16271855),linear-gradient(0deg,#15251880,transparent 50%); }
  .hero-inner { padding-block: 80px 110px; }
  .hero .eyebrow { font-size: 8px; margin-bottom: 27px; }
  .hero h1 { font-size: clamp(62px,14.8vw,82px); line-height: .97; }
  .hero p { font-size: 13px; max-width: 290px; }
  .hero-bottom { font-size: 7px; letter-spacing: .1em; }
  .hero-bottom span { max-width: 140px; }
  .home-hero { padding-top:31px; }
  .home-hero-copy .eyebrow { font-size:8px; letter-spacing:.16em; }
  .home-hero-copy h1 { margin:19px 0 16px; font-size:clamp(61px,14.5vw,76px); }
  .home-hero-copy > p { font-size:13px; line-height:1.75; }
  .home-hero-copy .hero-actions { gap:16px; margin-top:22px; }
  .home-hero-copy .hero-actions .btn { min-height:48px; padding-inline:16px; gap:14px; font-size:9px; }
  .home-hero-copy .hero-actions .text-link { font-size:9px; }
  .hero-note { font-size:9px; margin-top:19px; }
  .home-hero-art { min-height:415px; margin-top:3px; }
  .home-hero-art:before { width:290px; height:345px; left:16%; top:7%; }
  .home-hero-art:after { width:330px; height:375px; left:10%; top:2%; }
  .preview-label { top:5px; right:2%; font-size:7px; }
  .invite-preview { width:min(315px,76%); padding:7px; }
  .invite-cover { height:300px; }
  .invite-brand { top:19px; font-size:22px; }
  .invite-cover-note { margin-top:75px; font-size:7px; }
  .invite-cover strong { font-size:47px; }
  .invite-cover small { font-size:7px; }
  .invite-preview-foot { min-height:57px; padding:9px 9px 8px 12px; }
  .invite-preview-foot b { font-size:15px; }
  .invite-preview-foot small { font-size:8px; }
  .preview-arrow { width:32px; height:32px; }
  .rsvp-float { right:-2px; bottom:18px; padding:10px 12px 10px 9px; gap:8px; }
  .rsvp-icon { width:29px; height:29px; font-size:12px; }
  .rsvp-float b { font-size:13px; }
  .rsvp-float small { font-size:8px; }
  .sparkle-one { left:3%; top:22%; }
  .sparkle-two { right:4%; top:28%; }
  .home-hero .hero-bottom { font-size:7px; letter-spacing:.07em; padding-top:5px; }
  .home-hero .hero-bottom span { max-width:170px; }
  .promise-strip .wrap { justify-content:center; flex-wrap:wrap; min-height:74px; gap:9px 13px; padding-block:12px; }
  .promise-strip span { font-size:8px; }
  .promise-strip i { font-size:10px; }
  .collections-home { padding:68px 0 75px; }
  .section-heading { margin-bottom:28px; }
  .section-heading h2 { font-size:clamp(47px,12vw,62px); }
  .section-heading .copy { font-size:12px; }
  .product-grid { gap:9px; }
  .product-card { min-height:245px; padding:14px; }
  .product-tag { top:13px; left:13px; font-size:7px; letter-spacing:.1em; }
  .product-card > strong { font-size:24px; }
  .product-link { font-size:8px; margin-top:12px; }
  .motion-envelope { width:90px; height:118px; font-size:42px; }
  .events-type { padding:14px; }
  .events-type small { font-size:6px; letter-spacing:.11em; }
  .events-type strong { font-size:27px; }
  .service-band { padding:57px 0; }
  .service-grid h2 { font-size:53px; }
  .service-grid p { margin-bottom:16px; }
  .signature-strip { padding: 24px 0; }
  .signature-strip p { font-size: 20px; }
  .signature-strip small { font-size: 7px; max-width: 100px; }
  .collection-grid { grid-template-columns: 1fr; gap: 40px; }
  .collection-copy { max-width: 100%; }
  .collection-image img { height: 440px; object-position: 69% center; }
  .collection-image figcaption { display: flex; gap: 10px; }
  .collection-image figcaption span { margin: 0; }
  .collection-image figcaption span:last-child { text-align: right; }
  .home-occasions { padding: 55px 0 60px; }
  .occasion-head { display: block; }
  .occasion-head .text-link { margin-top: 25px; }
  .occasion-links { grid-template-columns: 1fr; gap: 0; }
  .occasion-link { font-size: 27px; }
  .invitation-cta { padding: 55px 0; }
  .invitation-cta .wrap { flex-direction: column; align-items: start; gap: 30px; }
  .footer-top { flex-direction: column; gap: 35px; }
  .footer-links { gap: 40px; }
  .footer-bottom { flex-direction: column; gap: 6px; }
  .page-intro { padding: 35px 0 45px; }
  .breadcrumb { margin-bottom: 35px; }
  .display { font-size: clamp(54px,13.5vw,76px); }
  .page-intro .eyebrow { margin-bottom: 20px; }
  .wide-scene { margin-inline: 10px; }
  .wide-scene > img { height: 425px; object-position: 65% center; }
  .scene-caption { font-size: 8px; max-width: 250px; }
  .story-section { padding: 65px 0; }
  .story-art { min-height: 480px; }
  .detail-row { grid-template-columns: 1fr; gap: 30px; padding: 35px 0; }
  .detail-row h3 { margin-top: 12px; }
  .inspiration { padding: 60px 0 70px; }
  .inspiration-head { display: block; }
  .inspiration-head p { margin-top: 18px; }
  .mood-grid { grid-template-columns: 1fr; gap: 28px; }
  .mood-art { min-height: 290px; }
  .mood-art .type { font-size: 60px; }
  .kids-feature { padding: 60px 0; }
  .kids-feature .feature-image { height: 440px; }
  .celebration-grid { gap: 30px 14px; padding-bottom: 70px; }
  .celebration-card .mood-art { min-height: 210px; }
  .celebration-card .type { font-size: 43px; }
  .celebration-card h2 { font-size: 25px; }
  .celebration-card p { font-size: 11px; }
  .celebration-card .arrow { display: none; }
  .panel-showcase { padding: 60px 0; }
  .plans-grid { grid-template-columns: 1fr; gap: 18px; }
  .plan { padding: 28px; }
  .plan h2 { font-size: 39px; }
  .plan li { font-size: 13px; }
  .price-start strong { font-size:42px; }
  .plan-contact { padding:57px 0; }
  .plan-contact h2 { font-size:57px; }
  .atelier-manifesto { padding:55px 0; }
  .atelier-manifesto-grid { grid-template-columns:1fr; gap:25px; }
  .atelier-stamp { width:140px; }
  .atelier-stamp span { font-size:25px; }
  .atelier-manifesto h2 { font-size:58px; }
  .quote-layout { padding-bottom:70px; }
  .quote-copy h2 { font-size:54px; }
  .brief-form { padding:23px 18px; }
  .brief-form > h2 { font-size:29px; }
  .brief-fields { grid-template-columns:1fr; gap:13px; }
  .brief-form .field-wide { grid-column:auto; }
  .brief-form .btn { width:100%; gap:10px; padding-inline:15px; font-size:9px; }
  .brief-fallback .actions { flex-direction:column; align-items:stretch; }
  .brief-fallback .btn { width:100%; }
  .cookie-table > div { grid-template-columns:1fr; gap:4px; }
  .cookie-table span { margin-bottom:9px; }
  .faq { padding: 60px 0 70px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*:before,*:after { transition: none !important; animation: none !important; }
}

/* ===== Home de vendas (azul) ===== */
.login-icon { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; vertical-align: -3px; margin-right: 6px; }
.shop-home { --sun: #ffcf3a; --blue-hero: #3f63e6; background: #f6f8ff; }
.shop-home .h-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 26px; border-radius: 999px; font: 600 16px/1 var(--sans); text-decoration: none; transition: transform .25s, box-shadow .25s, background .25s; white-space: nowrap; }
.shop-home .h-btn:hover { transform: translateY(-2px); }
.h-btn-white { background: #fff; color: #1d3aa8; box-shadow: 0 10px 24px #0d1f6a33; }
.h-btn-ghost { background: #ffffff1f; color: #fff; box-shadow: inset 0 0 0 1.5px #ffffff80; }
.h-btn-ghost:hover { background: #ffffff33; }
.h-btn-blue { background: var(--blue); color: #fff; box-shadow: 0 10px 22px #4068e840; }
.h-btn-blue:hover { background: #2f55d6; }
.h-btn-sun { background: var(--sun); color: #3d2208; box-shadow: 0 10px 22px #e0a8002e; }
.shop-home main svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.h-hero { position: relative; overflow: hidden; color: #fff; background: radial-gradient(circle at 85% 20%, #6d8dff 0, transparent 38%), radial-gradient(circle at 10% 90%, #2c49c4 0, transparent 40%), var(--blue-hero); padding: clamp(40px,6vw,80px) 0 clamp(70px,8vw,110px); }
.h-hero:after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 60px; background: #f6f8ff; clip-path: ellipse(70% 100% at 50% 100%); }
.h-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: clamp(30px,5vw,70px); align-items: center; }
.h-chip { display: inline-flex; padding: 8px 16px; border-radius: 999px; background: #ffffff24; font-size: 14px; font-weight: 600; }
.h-hero h1 { margin: 20px 0 18px; font-size: clamp(44px, 5.4vw, 78px); line-height: 1.02; letter-spacing: -.03em; }
.h-hero h1 em { font-style: italic; color: #ffe08a; }
.h-hero-copy > p { max-width: 34em; font-size: 18px; line-height: 1.6; color: #e6ecff; }
.h-price { display: inline-flex; align-items: baseline; gap: 8px; margin: 26px 0 0; padding: 12px 20px; border-radius: 18px; background: #fff; color: var(--ink); box-shadow: 0 14px 30px #0d1f6a33; }
.h-price small { font-size: 14px; color: var(--muted); }
.h-price strong { font: 600 38px/1 var(--sans); letter-spacing: -.03em; color: #1d3aa8; }
.h-price span { font-size: 14px; color: var(--muted); }
.h-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.h-trust { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 15px; color: #e6ecff; }
.h-trust li { display: flex; align-items: center; gap: 8px; }
.h-trust svg { width: 20px; height: 20px; color: #ffe08a; }
.h-hero-art { position: relative; height: clamp(460px, 44vw, 600px); }
.h-phone { position: absolute; width: 46%; aspect-ratio: 780/1688; padding: 8px; border-radius: 34px; background: #0d1733; box-shadow: 0 30px 60px #08135066; }
.h-phone img { width: 100%; height: 100%; object-fit: cover; border-radius: 27px; }
.h-phone-a { left: 6%; top: 4%; rotate: -6deg; animation: h-float 7s ease-in-out infinite; }
.h-phone-b { right: 4%; top: 12%; rotate: 5deg; animation: h-float 7s ease-in-out -3.5s infinite; }
.h-float { position: absolute; z-index: 2; display: flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px; border-radius: 16px; background: #fff; color: var(--ink); box-shadow: 0 16px 34px #0d1f6a3d; font-size: 14px; }
.h-float b { display: block; font-weight: 600; }
.h-float small { color: var(--muted); font-size: 12.5px; }
.h-float-1 { left: -2%; bottom: 14%; }
.h-float-2 { right: -2%; top: 2%; }
.h-dot { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #e3f6ea; color: #1f8a4c; }
.h-dot svg { width: 20px; height: 20px; }
.h-dot-gold { background: #fff3cf; color: #a46a00; }

.h-types { padding: 18px 0 8px; }
.h-types .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.h-types p { font-weight: 600; color: var(--blue-dark); margin-right: 6px; }
.h-types ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.h-types li { padding: 7px 14px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px #dfe6fb; font-size: 14px; color: var(--ink); }

.h-section { padding: clamp(70px, 8vw, 110px) 0 0; }
.h-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 30px; align-items: end; margin-bottom: 34px; }
.h-head h2 { font-size: clamp(38px, 4.4vw, 62px); line-height: 1.02; letter-spacing: -.03em; color: var(--ink); }
.h-head p { font-size: 17px; color: var(--muted); max-width: 32em; }

.h-occ { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.h-occ-card { position: relative; overflow: hidden; min-height: 170px; padding: 22px; border-radius: 22px; display: flex; align-items: flex-end; background: var(--bg, #fff); color: var(--ink, #17243d); text-decoration: none; box-shadow: 0 1px 0 #dfe6fb, 0 10px 26px #20386f0f; transition: transform .3s, box-shadow .3s; isolation: isolate; }
.h-occ-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px #20386f1f; }
.h-occ-card strong { display: block; font: 600 21px/1.15 var(--sans); letter-spacing: -.01em; }
.h-occ-card small { display: block; margin-top: 6px; font-size: 14px; line-height: 1.4; opacity: .85; }
.h-occ-go { position: absolute; top: 18px; right: 20px; font-size: 20px; opacity: .7; transition: transform .3s; }
.h-occ-card:hover .h-occ-go { transform: translateX(4px); }
.h-occ-card.is-big { grid-column: span 2; min-height: 300px; color: #fff; }
.h-occ-card.is-big img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s; }
.h-occ-card.is-big:hover img { transform: scale(1.05); }
.h-occ-card.is-big:after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, #0b1636f0 0%, #0b1636a8 45%, #0b163600 85%); }
.h-occ-card.is-big strong { font: 400 clamp(34px,3.4vw,48px)/1 var(--serif); letter-spacing: -.02em; }
.h-occ-card.is-big small { font-size: 16px; opacity: .95; }
.h-occ-price { display: inline-block; margin-top: 12px; padding: 7px 14px; border-radius: 999px; background: #ffe08a; color: #3d2a00; font-size: 14px; font-weight: 600; }

.h-demo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.h-demo { display: grid; grid-template-columns: 200px minmax(0,1fr); gap: 28px; align-items: center; padding: 28px; border-radius: 26px; overflow: hidden; }
.h-demo-wed { background: #13244d; color: #fff; }
.h-demo-kid { background: #e4f1ff; color: var(--ink); }
.h-demo-phone { padding: 7px; border-radius: 30px; background: #0d1733; box-shadow: 0 20px 40px #0813502e; rotate: -3deg; }
.h-demo-kid .h-demo-phone { rotate: 3deg; }
.h-demo-phone img { border-radius: 24px; width: 100%; height: auto; }
.h-tag { display: inline-block; padding: 6px 13px; border-radius: 999px; font-size: 13px; font-weight: 600; background: #ffffff1f; }
.h-demo-kid .h-tag { background: #fff; color: #1d3aa8; }
.h-demo h3 { margin: 14px 0 10px; font-size: clamp(32px, 3vw, 44px); line-height: 1; letter-spacing: -.02em; }
.h-demo p { font-size: 16px; line-height: 1.55; margin-bottom: 22px; opacity: .9; }

.h-steps { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.h-steps li { padding: 30px; border-radius: 24px; background: #fff; box-shadow: 0 1px 0 #dfe6fb, 0 10px 26px #20386f0f; }
.h-num { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--blue); color: #fff; font: 600 20px/1 var(--sans); }
.h-steps h3 { margin: 18px 0 8px; font: 600 22px/1.2 var(--sans); letter-spacing: -.01em; }
.h-steps p { color: var(--muted); font-size: 16px; line-height: 1.55; }

.h-feat { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.h-feat li { padding: 26px; border-radius: 22px; background: #fff; box-shadow: 0 1px 0 #dfe6fb; }
.h-feat svg { width: 34px; height: 34px; padding: 7px; border-radius: 12px; background: var(--blue-soft); color: var(--blue); }
.h-feat h3 { margin: 14px 0 6px; font: 600 19px/1.25 var(--sans); }
.h-feat p { color: var(--muted); font-size: 15.5px; line-height: 1.5; }

.h-plan-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; align-items: stretch; }
.h-plan { display: flex; flex-direction: column; padding: 28px 24px 24px; border-radius: 24px; background: #fff; box-shadow: 0 1px 0 #dfe6fb, 0 10px 26px #20386f0f; }
.h-plan h3 { font: 600 22px/1.2 var(--sans); }
.h-plan-tag { margin-top: 4px; font-size: 14.5px; color: var(--muted); }
.h-plan-price { margin: 18px 0 14px; font: 600 20px/1 var(--sans); color: var(--blue-dark); }
.h-plan-price small { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 500; color: var(--muted); }
.h-plan-price strong { font-size: 48px; letter-spacing: -.04em; }
.h-plan ul { display: grid; gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; font-size: 15px; }
.h-plan li { display: flex; gap: 8px; }
.h-plan li:before { content: "✓"; color: var(--blue); font-weight: 700; }
.h-plan .h-btn { margin-top: auto; width: 100%; }
.h-plan.is-premium { background: #1d3aa8; color: #fff; }
.h-plan.is-premium .h-plan-tag, .h-plan.is-premium .h-plan-price small { color: #c9d6ff; }
.h-plan.is-premium .h-plan-price { color: #fff; }
.h-plan.is-premium li:before { color: #ffe08a; }
.h-plans-more { margin-top: 18px; }
.h-plans-more a { color: var(--blue); font-weight: 600; text-decoration: none; }

.h-faq-grid { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 40px; align-items: start; }
.h-faq h2 { font-size: clamp(36px, 4vw, 56px); line-height: 1.02; letter-spacing: -.03em; }
.h-faq details { margin-bottom: 10px; border-radius: 18px; background: #fff; box-shadow: 0 1px 0 #dfe6fb; }
.h-faq summary { display: flex; justify-content: space-between; gap: 16px; padding: 20px 24px; cursor: pointer; list-style: none; font: 600 17px/1.35 var(--sans); }
.h-faq summary::-webkit-details-marker { display: none; }
.h-faq summary:after { content: "+"; color: var(--blue); font-size: 22px; line-height: 1; transition: transform .3s; }
.h-faq details[open] summary:after { transform: rotate(45deg); }
.h-faq details p { padding: 0 24px 20px; color: var(--muted); font-size: 16px; line-height: 1.6; }

.h-final { margin-top: clamp(70px, 8vw, 110px); padding: clamp(50px, 6vw, 80px) 0; background: radial-gradient(circle at 90% 0, #6d8dff 0, transparent 40%), #2f55d6; color: #fff; }
.h-final-grid { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.h-final h2 { font-size: clamp(36px, 4.2vw, 58px); line-height: 1.02; letter-spacing: -.03em; }
.h-final p { margin-top: 10px; font-size: 17px; color: #dfe7ff; }

@keyframes h-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@media (max-width: 1050px) {
  .h-occ, .h-plan-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .h-demo { grid-template-columns: 150px minmax(0,1fr); padding: 22px; gap: 20px; }
}
@media (max-width: 860px) {
  .h-hero-grid, .h-head, .h-faq-grid, .h-demo-grid { grid-template-columns: 1fr; }
  .h-hero-art { height: 440px; max-width: 460px; width: 100%; margin: 0 auto; }
  .h-steps, .h-feat { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .h-hero h1 { font-size: clamp(38px, 10.5vw, 50px); }
  .h-hero-copy > p { font-size: 16.5px; }
  .h-actions .h-btn { flex: 1 1 100%; }
  .h-hero-art { height: 380px; }
  .h-float { font-size: 13px; padding: 8px 12px 8px 8px; }
  .h-float-2 { right: 0; }
  .h-occ { grid-template-columns: 1fr 1fr; gap: 10px; }
  .h-occ-card { min-height: 150px; padding: 16px; border-radius: 18px; }
  .h-occ-card strong { font-size: 17px; }
  .h-occ-card small { font-size: 13px; }
  .h-occ-card.is-big { min-height: 230px; }
  .h-demo { grid-template-columns: 1fr; }
  .h-demo-phone { width: 62%; margin: 0 auto 6px; }
  .h-plan-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .h-phone { animation: none; } }

/* Formulário compartilhado e confirmação avulsa. */
.logo { align-items:center; letter-spacing:normal; flex-shrink:0; }
.logo .madeh-logo { display:block; width:126px; height:84px; object-fit:contain; }
.site-footer .logo .madeh-logo { width:168px; height:112px; }
.developer-credit { color:inherit; text-decoration:none; transition:color .2s; }
.developer-credit:hover,.developer-credit:focus-visible { color:var(--blue); text-decoration:underline; text-underline-offset:5px; }
.panel-showcase { background:linear-gradient(135deg,#f5f3ee,#eaeef7); padding:90px 0; }
.panel-showcase .story-grid { align-items:center; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:7%; }
.atelier-panel { min-width:0; background:#fffcf7; border:1px solid #dbd8d0; border-radius:22px; box-shadow:0 24px 65px #20386f16; overflow:hidden; }
.atelier-panel-top { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:20px 26px; background:#192942; color:#f7f1e5; font:500 22px/1.3 var(--serif); }
.panel-private { font:500 10px/1.5 var(--sans); letter-spacing:.1em; text-transform:uppercase; color:#d6c3a2; }
.atelier-panel-body { padding:32px; }
.atelier-panel-heading h3 { margin:12px 0; font:400 clamp(32px,3vw,46px)/1.05 var(--serif); }
.atelier-panel-heading>p { color:var(--muted); font-size:14px; margin-bottom:25px; }
.panel-feature { display:flex; align-items:center; gap:16px; padding:19px 0; border-top:1px solid #e5e1d9; }
.panel-feature-number { flex-shrink:0; display:grid; place-items:center; width:38px; height:38px; background:#efece4; border-radius:50%; color:#7d6848; font:400 18px var(--serif); }
.panel-feature>div { flex:1; }
.panel-feature h4 { font:500 16px/1.4 var(--sans); margin:0 0 3px; }
.panel-feature p { font-size:13px; line-height:1.5; color:var(--muted); }
.panel-preview-note { padding-top:15px; font-size:10px; line-height:1.6; color:var(--muted); border-top:1px solid #e5e1d9; }
@media(max-width:800px) { .panel-showcase .story-grid { grid-template-columns:1fr; gap:32px; } .logo .madeh-logo { width:102px; height:68px; } .atelier-panel-body { padding:24px; } .atelier-panel-top { padding:18px 22px; } }
.h-plan-talk,.plan-contact-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:48px; align-items:start; }
.h-plan-talk { margin-top:48px; padding-top:40px; border-top:1px solid #d7e1f5; }
.h-plan-talk h3 { font-size:clamp(28px,3vw,40px); line-height:1.12; margin-bottom:16px; }
.h-plan-talk p { color:var(--muted); line-height:1.65; }
.plan-contact .plan-contact-grid { display:grid; }
.lead-form { min-width:0; padding:32px; background:#fff; color:#20386f; border:1px solid #dce5f5; border-radius:24px; box-shadow:0 14px 40px #193b7710; text-align:left; }
.lead-title { font-size:30px; margin-bottom:10px; }
.lead-intro { margin-bottom:24px; color:#596984; }
.lead-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.lead-field { display:grid; gap:8px; min-width:0; font:500 14px/1.4 var(--sans); }
.lead-field input,.lead-field select,.lead-field textarea { width:100%; min-width:0; padding:13px 14px; border:1px solid #d5dff0; border-radius:12px; background:#f8faff; color:#20386f; font:400 16px/1.5 var(--sans); }
.lead-field textarea { resize:vertical; }
.lead-field :is(input,select,textarea):focus-visible { outline:3px solid #a8bdf5; outline-offset:2px; border-color:#3456cb; }
.lead-wide { grid-column:1/-1; }
.lead-hp { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.lead-consent { display:flex; align-items:flex-start; gap:10px; margin:22px 0; font-size:13px; line-height:1.6; color:#596984; }
.lead-consent input { width:18px; height:18px; flex-shrink:0; margin-top:2px; accent-color:#3456cb; }
.lead-consent a { text-decoration:underline; }
.lead-submit,.lead-copy { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; padding:16px 20px; border:0; border-radius:13px; background:#2f55d6; color:white; font:600 15px/1.4 var(--sans); cursor:pointer; }
.lead-submit:hover { background:#203eaa; }
.lead-submit:disabled { opacity:.65; cursor:wait; }
.lead-status { margin-top:15px; font-size:14px; line-height:1.6; }
.lead-status:empty { display:none; }
.lead-done { padding:20px; margin-top:20px; border-radius:14px; background:#edf6ef; color:#285c3c; }
.lead-done p { margin-top:8px; }
.lead-fallback { margin-top:20px; padding:20px; border-radius:14px; background:#edf6ef; color:#285c3c; }
.lead-fallback > strong { display:block; font-size:17px; }
.lead-fallback > p { margin-top:8px; color:#35553f; }
.lead-fb-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.lead-fb-wa,.lead-fb-mail { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 20px; border-radius:999px; font:600 15px/1 var(--sans); text-decoration:none; cursor:pointer; }
.lead-fb-wa { background:#1f9d55; color:#fff; }
.lead-fb-mail { background:#fff; color:#20386f; box-shadow:inset 0 0 0 1px #c9d6ee; }
.lead-fallback .lead-field { margin:16px 0; }
.lead-copy { width:auto; background:#eaf0ff; color:#20386f; }
.lead-form [hidden] { display:none!important; }
.confirmation-offer { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:70px; align-items:center; padding:50px; margin-top:65px; margin-bottom:65px; background:linear-gradient(120deg,#e8efff,#f8fbff); border:1px solid #dce5f5; border-radius:32px; }
.confirmation-copy h2 { font-size:clamp(38px,4.5vw,64px); line-height:1.05; margin:15px 0 22px; }
.confirmation-copy>p { max-width:520px; color:var(--muted); line-height:1.7; }
.confirmation-copy ul { padding-left:20px; margin:20px 0; line-height:1.9; }
.confirmation-copy>small { display:block; margin-top:18px; color:var(--muted); }
.confirmation-phone { display:block; border:8px solid #23324b; border-radius:32px; overflow:hidden; box-shadow:0 25px 50px #243c7326; transform:rotate(3deg); }
.confirmation-phone img { display:block; width:100%; height:auto; }
@media(max-width:860px) { .h-plan-talk,.plan-contact .plan-contact-grid { grid-template-columns:1fr; gap:28px; } .confirmation-offer { gap:30px; padding:30px; grid-template-columns:minmax(0,1fr) 190px; } }
@media(max-width:560px) { .lead-grid { grid-template-columns:1fr; } .lead-form { padding:22px 18px; } .confirmation-offer { grid-template-columns:1fr; padding:26px; } .confirmation-phone { width:190px; margin:12px auto; } .confirmation-copy .actions { align-items:flex-start; } }

.madeh-phone,.madeh-kid-demo .h-demo-phone{position:relative;overflow:hidden}.madeh-phone:after,.madeh-kid-demo .h-demo-phone:after{content:"Madeh Ateliê";position:absolute;inset:0 0 auto;height:12%;display:grid;place-items:center;background:#faf7ef;color:#34463c;font:500 19px/1.2 var(--serif);letter-spacing:.02em;z-index:2}

/* Prévias verticais: proporção de convite, sem moldura de aparelho. */
.h-hero-art{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;width:100%;max-width:510px;height:auto;margin-inline:auto;padding:38px 12px 58px;isolation:isolate}
.h-hero-art .h-phone{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:780/1688;padding:0;border:1px solid #ffffff40;border-radius:14px;background:transparent;overflow:hidden;box-shadow:0 24px 48px #10245a38;animation:none;rotate:0deg;transform:none;min-width:0}
.h-hero-art .h-phone-a{margin-top:0}
.h-hero-art .h-phone-b{margin-top:38px}
.h-hero-art .h-phone img{display:block;width:100%;height:auto;border-radius:0;object-fit:contain}
.h-hero-art .h-float{max-width:calc(100% - 24px);font-size:12px;padding:10px 13px;gap:9px;border-radius:12px;box-shadow:0 10px 30px #10245a22}
.h-hero-art .h-float small{font-size:11px}
.h-hero-art .h-float-1{left:0;bottom:18px}
.h-hero-art .h-float-2{right:0;top:0}
.h-demo{grid-template-columns:minmax(130px,.8fr) minmax(0,1fr);gap:26px;align-items:center}
.h-demo .h-demo-phone,.h-demo-kid .h-demo-phone{width:100%;max-width:210px;margin-inline:auto;rotate:0deg;transform:none;padding:0;border:1px solid #ffffff90;border-radius:12px;overflow:hidden;background:transparent;box-shadow:0 16px 32px #20386f1a}
.h-demo-phone img{display:block;width:100%;height:auto;border-radius:0;object-fit:contain}
.confirmation-offer{grid-template-columns:minmax(0,1fr) minmax(0,260px);gap:clamp(24px,5vw,70px)}
.confirmation-phone{width:100%;max-width:260px;justify-self:center;margin:0;border:1px solid #d5ddeb;border-radius:14px;transform:none;box-shadow:0 18px 42px #243c731c;background:#0b1924}
.confirmation-phone img{display:block;width:100%;height:auto;object-fit:contain}
.madeh-phone:after,.madeh-kid-demo .h-demo-phone:after{font-size:clamp(12px,1.4vw,18px)}
/* Coleções com imagens proporcionais, texto legível e espaçamento consistente. */
.mood-grid{gap:24px;align-items:stretch}
.mood{min-width:0;background:#fffdf9;border:1px solid #e3e4e8;border-radius:18px;overflow:hidden;padding:10px 10px 24px;box-shadow:0 8px 24px #20386f07;transition:transform .25s,box-shadow .25s,border-color .25s}
.mood:hover{transform:translateY(-4px);box-shadow:0 18px 40px #20386f12;border-color:#c8cdd8}
.mood:focus-visible{outline:3px solid #8da7e6;outline-offset:4px}
.mood .mood-art{min-height:0;aspect-ratio:4/3;border-radius:10px}
.mood .mood-art img{transition:transform .5s}
.mood:hover .mood-art img{transform:scale(1.035)}
.mood .mood-art:after{inset:14px;border-radius:4px}
.mood h3{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:20px 14px 8px;font-size:clamp(23px,2.2vw,30px);line-height:1.15}
.mood p{margin:0 14px;font-size:14px;line-height:1.65;max-width:38em}
.mood-art .type{font-size:clamp(40px,4vw,62px)}
.mood-art .type small{font-size:10px;line-height:1.6;padding:0 12px;letter-spacing:.19em}
.invitation-catalog .mood-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}
.invitation-catalog .mood{grid-column:span 2}
.invitation-catalog .mood:nth-child(-n+2){grid-column:span 3}
.invitation-catalog .mood:nth-child(-n+2) .mood-art{aspect-ratio:16/10}
.invitation-catalog .mood:last-child{grid-column:span 4;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr 1fr;column-gap:16px;padding:10px}
.invitation-catalog .mood:last-child .mood-art{grid-row:1/3;aspect-ratio:auto;min-height:280px;background:#18253a}
.invitation-catalog .mood:last-child .mood-art img{object-fit:contain}
.invitation-catalog .mood:last-child h3{align-self:end;margin-bottom:12px}
.invitation-catalog .mood:last-child p{align-self:start}
.story-art img,.panel-image{max-width:100%;height:auto}
.story-art:has(img[src*="demo-casamento"]){width:min(100%,320px);justify-self:center}
@media(min-width:1600px){.h-hero-art{max-width:530px}.h-hero h1{font-size:78px}}
@media(max-width:1100px){.h-demo-grid{grid-template-columns:1fr}.h-demo{grid-template-columns:minmax(130px,200px) minmax(0,1fr);max-width:760px;width:100%;margin-inline:auto}.mood-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invitation-catalog .mood-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invitation-catalog .mood,.invitation-catalog .mood:nth-child(-n+2){grid-column:span 1}.invitation-catalog .mood:last-child{grid-column:1/-1}.mood .mood-art,.invitation-catalog .mood:nth-child(-n+2) .mood-art{aspect-ratio:4/3}}
@media(max-width:860px){.h-hero-grid{grid-template-columns:1fr}.h-hero-art{width:min(100%,450px);height:auto;margin:4px auto 0;gap:18px}.h-hero-copy{max-width:640px}.confirmation-offer{grid-template-columns:minmax(0,1fr) minmax(0,220px);padding:32px}.confirmation-phone{max-width:220px}.mood-art .type{font-size:48px}}
@media(max-width:600px){.h-hero{padding-top:32px;padding-bottom:65px}.h-hero-grid{gap:26px}.h-hero-art{max-width:360px;padding:32px 8px 50px;gap:14px}.h-hero-art .h-phone-b{margin-top:24px}.h-hero-art .h-float{font-size:10px;padding:8px 10px;gap:7px}.h-hero-art .h-float small{font-size:10px}.h-hero-art .h-dot{width:28px;height:28px}.h-hero-art .h-float-1{bottom:10px}.h-demo{grid-template-columns:1fr;padding:24px;gap:24px}.h-demo .h-demo-phone{max-width:200px;width:72%;margin:0 auto}.h-demo-copy{text-align:center}.h-demo-copy .h-btn{justify-content:center}.confirmation-offer{grid-template-columns:1fr;padding:26px;gap:28px}.confirmation-phone{width:min(72%,230px);max-width:230px;margin:0 auto}.confirmation-copy .actions{gap:18px}.mood-grid,.invitation-catalog .mood-grid{grid-template-columns:1fr;gap:22px}.invitation-catalog .mood:last-child{display:block;grid-column:auto;padding:10px 10px 24px}.invitation-catalog .mood:last-child .mood-art{aspect-ratio:4/3;min-height:0}.mood h3{font-size:27px}.mood p{font-size:14px}.mood .mood-art{aspect-ratio:4/3}.invitation-catalog{padding-top:36px}.story-art:has(img[src*="demo-casamento"]){width:min(75%,280px)}}
@media(max-width:360px){.h-hero-art{gap:10px;padding-inline:4px}.h-hero-art .h-float{font-size:9px}.h-hero-art .h-float small{font-size:9px}.h-price{gap:6px;padding:12px}.h-price strong{font-size:32px}.h-price span{font-size:12px}.confirmation-offer{padding:20px}.mood h3{margin-inline:10px;font-size:25px}.mood p{margin-inline:10px}.mood-art .type{font-size:42px}}
@media(prefers-reduced-motion:reduce){.mood,.mood-art img{transition:none}.mood:hover,.mood:hover .mood-art img{transform:none}}

@media(min-width:801px) and (max-width:1050px){.nav{gap:16px}.nav-links{gap:14px}.nav-links>a{font-size:11px}.nav-links .login{padding:11px 12px;margin-left:0}.logo .madeh-logo{width:100px;height:72px}}

/* Contato no rodapé */
.footer-contact { display: grid; gap: 8px; align-content: start; }
.footer-contact a { text-decoration: none; }
.wa-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; white-space: nowrap; }
.wa-icon { flex: none; width: 20px; height: 20px; }

/* Compra e pedido */
.buy-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .9fr); gap: clamp(20px, 3vw, 40px); align-items: start; padding-bottom: clamp(60px, 8vw, 110px); }
.buy-form { display: grid; gap: 22px; padding: clamp(20px, 3vw, 36px); border-radius: 24px; background: #fff; box-shadow: 0 1px 0 #dfe6fb, 0 18px 40px #20386f12; }
.buy-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.buy-form legend { margin-bottom: 14px; font: 600 18px/1.3 var(--sans); color: var(--ink); }
.buy-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.buy-plans legend { grid-column: 1 / -1; }
.buy-plan { position: relative; cursor: pointer; }
.buy-plan input { position: absolute; opacity: 0; pointer-events: none; }
.buy-plan-body { display: grid; gap: 4px; height: 100%; padding: 18px; border-radius: 18px; background: #f6f8ff; box-shadow: inset 0 0 0 1.5px #dfe6fb; transition: box-shadow .2s, background .2s, transform .2s; }
.buy-plan:hover .buy-plan-body { transform: translateY(-2px); }
.buy-plan input:checked + .buy-plan-body { background: #eef2ff; box-shadow: inset 0 0 0 2.5px var(--blue); }
.buy-plan input:focus-visible + .buy-plan-body { outline: 2px solid var(--gold); outline-offset: 3px; }
.buy-plan strong { font: 600 19px/1.2 var(--sans); }
.buy-plan small { color: var(--muted); font-size: 13.5px; }
.buy-plan b { margin-top: 6px; font: 600 28px/1 var(--sans); color: #1d3aa8; letter-spacing: -.02em; }
.buy-plan-feats { color: var(--muted); font-size: 13px; line-height: 1.45; }
.buy-plan.is-premium input:checked + .buy-plan-body { background: #1d3aa8; color: #fff; }
.buy-plan.is-premium input:checked + .buy-plan-body small, .buy-plan.is-premium input:checked + .buy-plan-body .buy-plan-feats { color: #d4ddff; }
.buy-plan.is-premium input:checked + .buy-plan-body b { color: #ffe08a; }
.buy-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.buy-fields legend { grid-column: 1 / -1; }
.buy-fields .lead-wide { grid-column: 1 / -1; }
.buy-fields small { color: var(--muted); font-size: 12.5px; }
.buy-aside { display: grid; gap: 14px; position: sticky; top: 110px; }
.buy-card { padding: 22px 24px; border-radius: 20px; background: #fff; box-shadow: 0 1px 0 #dfe6fb; }
.buy-card h2 { font-size: 26px; margin-bottom: 10px; }
.buy-card ol { margin: 0; padding-left: 20px; display: grid; gap: 8px; font-size: 15px; color: var(--muted); }
.buy-card strong { display: block; margin-bottom: 6px; font-size: 16px; }
.buy-card p { font-size: 15px; line-height: 1.6; color: var(--muted); }
.buy-card a { color: var(--blue); }
.buy-safe { background: #eef8f1; box-shadow: none; }
.buy-safe strong { color: #1f6b43; }
.order-status { padding: clamp(60px, 10vw, 140px) 0; display: grid; place-items: center; }
.order-card { width: min(560px, 100%); padding: clamp(28px, 4vw, 44px); border-radius: 26px; background: #fff; text-align: center; box-shadow: 0 1px 0 #dfe6fb, 0 24px 50px #20386f14; }
.order-card h1 { font-size: clamp(34px, 4vw, 48px); line-height: 1.05; margin: 14px 0 12px; }
.order-card p { color: var(--muted); font-size: 16px; line-height: 1.6; }
.order-card.is-ok h1 { color: #1f6b43; }
.order-user { margin: 14px 0 22px; font-size: 16px; color: var(--ink) !important; }
.order-go { display: inline-flex; width: auto; padding: 0 28px; text-decoration: none; }
.order-spinner { display: inline-block; width: 44px; height: 44px; border-radius: 50%; border: 4px solid #dfe6fb; border-top-color: var(--blue); animation: order-spin 1s linear infinite; }
@keyframes order-spin { to { transform: rotate(360deg); } }
@media (max-width: 900px) { .buy-layout { grid-template-columns: 1fr; } .buy-aside { position: static; } }
@media (max-width: 560px) { .buy-plans, .buy-fields { grid-template-columns: 1fr; } }

.buy-fields { align-items: start; }

/* Ajustes de responsividade: botão do pedido e rodapé com contato */
.order-go { min-height: 54px; padding: 0 28px; border-radius: 14px; align-items: center; justify-content: center; gap: 14px; }
@media (max-width: 800px) { .footer-links { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; } .footer-contact { grid-column: 1 / -1; } }
@media (max-width: 380px) { .footer-links { grid-template-columns: 1fr; } }

/* ---------- Tipografia: leitura confortável em todo o site (escala única) ---------- */
body { font-size: 17px; line-height: 1.65; }
.eyebrow, .plan .eyebrow, .service-grid .eyebrow, .home-hero-copy .eyebrow, .hero .eyebrow,
.footer-links small, .breadcrumb, .product-tag, .pill, .h-tag, .collection-image figcaption span:last-child { font-size: 12.5px; letter-spacing: .16em; line-height: 1.5; }
.copy, .section-heading .copy, .hero p, .home-hero-copy > p, .atelier-manifesto p, .inspiration-head p,
.plan-contact p, .faq details p, .legal-copy p, .detail-row p, .h-hero-copy > p { font-size: 17px; line-height: 1.7; }
.service-grid p, .celebration-card p, .mood p, .panel-feature p, .footer-note, .quote-copy li, .plan li,
.plan-limit, .brief-form > p, .cookie-table > div, .buy-plan-feats, .h-occ-card small { font-size: 15.5px; line-height: 1.6; }
.btn, .plan-foot .btn, .brief-fallback .btn, .brief-form .btn, .home-hero-copy .hero-actions .btn { font-size: 14.5px; letter-spacing: .04em; min-height: 52px; }
.text-link, .home-hero-copy .hero-actions .text-link, .atelier-manifesto .text-link, .product-link { font-size: 15px; gap: 0; }
.text-link:hover { gap: 0; opacity: .75; }
.nav-links > a { font-size: 15px; }
.nav-links .login { font-size: 14.5px; }
.footer-links a, .footer-contact a { font-size: 15px; }
.footer-bottom, .legal-updated, .legal-copy .legal-source, .module-note, .plans-caption, .hero-note, .hero-bottom,
.scene-caption, .detail-row small, .plan-foot small, .plan-contact-card small, .form-explain, .brief-fallback > small,
.panel-preview-note, .collection-image figcaption, .signature-strip small, .promise-strip span, .quote-copy li b,
.lead-consent, .buy-fields small, .buy-plan small, .h-float small, .h-plan-price small, .mood-art .type small { font-size: 13.5px; line-height: 1.55; }
.brief-form .field, .brief-form .consent-check { font-size: 14px; }
.brief-fallback .field textarea { font-size: 15px; }
.display { font-size: clamp(46px, 6vw, 88px); }
.section-title { font-size: clamp(38px, 4.6vw, 66px); }
.hero h1 { font-size: clamp(50px, 6.6vw, 96px); }
.home-hero-copy h1 { font-size: clamp(50px, 6.4vw, 92px); }
.section-heading h2, .plan-contact h2, .atelier-manifesto h2 { font-size: clamp(38px, 5vw, 70px); }
.service-grid h2, .quote-copy h2, .invitation-cta h2 { font-size: clamp(36px, 4.4vw, 62px); }
@media (max-width: 760px) {
  body { font-size: 16.5px; }
  .copy, .section-heading .copy, .hero p, .home-hero-copy > p, .atelier-manifesto p, .inspiration-head p, .plan-contact p, .faq details p, .legal-copy p, .h-hero-copy > p { font-size: 16.5px; }
  .hero h1, .home-hero-copy h1 { font-size: clamp(42px, 11.5vw, 60px); }
  .section-heading h2, .plan-contact h2, .atelier-manifesto h2, .service-grid h2, .quote-copy h2, .invitation-cta h2 { font-size: clamp(34px, 9.5vw, 48px); }
  .display { font-size: clamp(40px, 11vw, 58px); }
  .section-title { font-size: clamp(34px, 9.5vw, 48px); }
  .eyebrow, .h-tag, .pill { font-size: 12px; }
}
.buy-card ol li, .buy-card p, .buy-safe p { font-size: 15px; line-height: 1.6; }
.buy-rules { background: #fbf7ee; box-shadow: inset 0 0 0 1px #be965b33; }
.buy-rules ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.buy-rules li { position: relative; padding-left: 18px; font-size: 15px; line-height: 1.55; color: var(--muted); }
.buy-rules li:before { content: ''; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.buy-rules li b { color: var(--ink); font-weight: 600; }
.buy-rules a { color: var(--blue-dark); }
.lead-consent { font-size: 14.5px; }
.lead-submit { font-size: 15.5px; }

/* Galeria de temas por tipo de festa */
.theme-gallery { padding:clamp(72px,9vw,120px) 0; background:#0b1a33; color:#f7f1e4; }
.tg-head { max-width:760px; }
.tg-head h2 { margin:12px 0 0; font:400 clamp(40px,5vw,72px)/1 var(--serif); letter-spacing:-.02em; }
.tg-head h2 em { color:#e6bb6e; }
.tg-head p { margin-top:18px; color:#cfd7e2; font-size:17px; line-height:1.7; }
.theme-gallery .eyebrow { color:#e6bb6e; }
.tg-tabs { display:flex; gap:8px; margin:34px 0 26px; overflow-x:auto; padding-bottom:6px; scrollbar-width:thin; }
.tg-tab { flex:none; padding:11px 18px; border:0; border-radius:999px; background:rgba(247,241,228,.08); color:#f7f1e4; font:500 15px/1 var(--sans); cursor:pointer; transition:background-color .2s,color .2s; }
.tg-tab:hover { background:rgba(247,241,228,.16); }
.tg-tab[aria-selected="true"] { background:#e6bb6e; color:#0b1a33; font-weight:600; }
.tg-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.tg-card { margin:0; border-radius:16px; overflow:hidden; background:rgba(247,241,228,.06); }
.tg-img { aspect-ratio:4/3; }
.tg-img img { display:block; width:100%; height:100%; object-fit:cover; }
.tg-card figcaption { display:grid; grid-template-columns:1fr auto; gap:2px 10px; align-items:center; padding:12px 14px 14px; }
.tg-card strong { font-weight:600; font-size:15.5px; }
.tg-card small { grid-column:1/-1; color:#aab6c6; font-size:13px; }
.tg-tier { justify-self:start; padding:3px 9px; border-radius:999px; background:rgba(247,241,228,.12); font-size:11.5px; font-weight:600; letter-spacing:.03em; }
.tg-card.is-grandioso .tg-tier { background:rgba(230,187,110,.2); color:#f3d79e; }
.tg-card.is-premium .tg-tier { background:#e6bb6e; color:#0b1a33; }
.tg-custom { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:30px; padding:24px 28px; border-radius:18px; background:linear-gradient(120deg,#173560,#102646); }
.tg-custom strong { font:400 26px/1.15 var(--serif); }
.tg-custom p { margin-top:6px; color:#cfd7e2; max-width:46em; line-height:1.6; }
.tg-custom b { color:#e6bb6e; }
.tg-custom .btn { flex:none; }
@media (max-width:1000px) { .tg-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px) { .tg-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .tg-custom { flex-direction:column; align-items:stretch; } .tg-card figcaption { grid-template-columns:1fr; } }
