:root {
  --ink: #090908;
  --ink-soft: #151411;
  --ivory: #f7f3eb;
  --paper: #eee7dc;
  --gold: #c89b45;
  --gold-bright: #efd16e;
  --gold-deep: #8f6427;
  --smoke: #aaa399;
  --line-dark: rgba(255,255,255,.15);
  --display: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Manrope', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { margin: 0; background: var(--ink); color: var(--ivory); font-family: var(--sans); }
main { display: flex; flex-direction: column; }
main > .hero { order: 1; }
main > .gold-marquee { order: 2; }
main > .promotions { order: 3; }
main > .brand-manifesto { order: 4; }
main > .services { order: 5; }
main > .studio-section { order: 6; }
main > .portfolio { order: 7; }
main > .quote-band { order: 8; }
main > .process { order: 9; }
main > .about { order: 10; }
main > .faq { order: 11; }
main > .final-cta { order: 12; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.site-header {
  position: fixed; z-index: 20; top: 0; left: 0; width: 100%; height: 100px;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 0 clamp(22px,4.2vw,76px); border-bottom: 1px solid var(--line-dark);
  background: var(--ink); box-shadow: 0 8px 28px rgba(0,0,0,.16);
}
.brand { display: flex; align-items: center; gap: 14px; width: max-content; }
.brand-logo { width: 58px; height: 58px; overflow: hidden; border-radius: 50%; background: white; }
.brand-logo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.13); }
.brand-name { display: flex; flex-direction: column; gap: 6px; line-height: 1; }
.brand-name strong { font-size: 12px; text-transform: uppercase; letter-spacing: .18em; }
.brand-name small { color: var(--gold); font-size: 7px; text-transform: uppercase; letter-spacing: .17em; }
.site-header nav { display: flex; gap: clamp(24px,3vw,48px); }
.site-header nav a { font-size: 8px; font-weight: 600; text-transform: uppercase; letter-spacing: .17em; }
.header-cta { justify-self: end; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; }
.header-cta span { margin-left: 8px; color: var(--gold-bright); font-size: 15px; }
.menu-button { display: none; }
.hero { min-height: 860px; height: 100svh; display: grid; grid-template-columns: 43% 57%; }
.hero-portrait { position: relative; min-width: 0; overflow: hidden; background: #d9c4aa; }
.hero-portrait > img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; filter: none !important; opacity: 1; }
.portrait-caption { position: absolute; left: 25px; bottom: 25px; padding: 11px 14px; background: rgba(247,243,235,.88); color: var(--ink); font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; backdrop-filter: blur(12px); }
.hero-content {
  position: relative; display: flex; flex-direction: column; justify-content: center;
  padding: 160px clamp(34px,6vw,110px) 62px;
  background: radial-gradient(circle at 86% 20%,rgba(200,155,69,.13),transparent 26%), var(--ink);
}
.hero-meta { position: absolute; top: 126px; left: clamp(34px,6vw,110px); right: clamp(34px,6vw,110px); display: flex; justify-content: space-between; color: #6f6a62; font-size: 7px; text-transform: uppercase; letter-spacing: .16em; }
.eyebrow { display: flex; align-items: center; gap: 11px; margin: 0 0 28px; color: var(--gold); font-size: 8px; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; }
.eyebrow i { font-style: normal; font-size: 9px; }
.hero h1 { margin: 0; font-family: var(--display); font-size: clamp(64px,7.2vw,132px); font-weight: 400; line-height: .86; letter-spacing: -.055em; }
.hero h1 em { color: var(--gold-bright); font-weight: 400; }
.hero-lead { max-width: 640px; margin: 34px 0 0; color: #b7afa5; font-size: clamp(14px,1.15vw,17px); line-height: 1.85; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 35px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 58px; padding: 0 25px; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; transition: transform .2s; }
.button:hover { transform: translateY(-3px); }
.button-gold { background: linear-gradient(135deg,var(--gold-bright),var(--gold)); color: var(--ink); }
.button-gold span { margin-left: 13px; font-size: 15px; }
.text-link { padding-bottom: 7px; border-bottom: 1px solid #535049; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; }
.text-link span { margin-left: 8px; color: var(--gold-bright); }
.hero-footer { display: flex; align-items: center; gap: 18px; margin-top: auto; padding-top: 35px; border-top: 1px solid var(--line-dark); color: #736e67; font-size: 7px; text-transform: uppercase; letter-spacing: .14em; }
.hero-footer i { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); }
.gold-marquee { height: 48px; display: flex; align-items: center; overflow: hidden; background: linear-gradient(90deg,var(--gold-deep),var(--gold-bright),var(--gold)); color: var(--ink); }
.gold-marquee div { display: flex; align-items: center; gap: 28px; width: max-content; padding-left: 3vw; white-space: nowrap; }
.gold-marquee span { font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.gold-marquee i { font-style: normal; }
@media (max-width:1000px) {
  .site-header { grid-template-columns: 1fr auto; height: 84px; }
  .site-header nav,.header-cta { display:none; }
  .menu-button { display:block; width:42px; height:42px; padding:10px; border:0; background:none; }
  .menu-button i { display:block; height:1px; margin:7px 0; background:white; }
  .hero { height:auto; grid-template-columns:1fr; }
  .hero-portrait { height:min(110vw,760px); order:2; }
  .hero-content { min-height:760px; padding-top:150px; }
}
@media (max-width:580px) {
  .site-header { padding-inline:16px; }
  .brand-name { display:none; }
  .hero-content { min-height:720px; padding:140px 20px 45px; }
  .hero-meta { top:110px; left:20px; right:20px; }
  .hero h1 { font-size:clamp(58px,18vw,82px); }
  .hero-actions { align-items:stretch; flex-direction:column; gap:20px; }
  .button { width:100%; }
  .hero-footer { flex-wrap:wrap; }
  .hero-portrait { height:125vw; min-height:550px; }
}

body.menu-open { overflow: hidden; }
.scroll-progress { position: fixed; z-index: 300; top: 0; left: 0; width: 100%; height: 2px; pointer-events: none; }
.scroll-progress span { display: block; width: 0; height: 100%; background: var(--gold-bright); }
.site-header.is-fixed { position: fixed; height: 76px; background: var(--ink); box-shadow: 0 8px 28px rgba(0,0,0,.22); }
.mobile-menu { position: fixed; z-index: 19; inset: 0; padding: 120px 24px 42px; background: var(--ink); }
.mobile-menu > a:not(.mobile-book) { display: flex; justify-content: space-between; padding: 22px 0; border-bottom: 1px solid var(--line-dark); font-family: var(--display); font-size: 38px; }
.mobile-menu > a span { color: var(--gold); font-family: var(--sans); font-size: 8px; }
.mobile-book { display: flex; align-items: center; justify-content: center; min-height: 58px; margin-top: 38px; background: linear-gradient(135deg,var(--gold-bright),var(--gold)); color: var(--ink); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }
[hidden] { display: none !important; }
.menu-button[aria-expanded="true"] i:first-child { transform: rotate(45deg) translateY(5px); }
.menu-button[aria-expanded="true"] i:last-child { transform: rotate(-45deg) translateY(-5px); }
.menu-button i { transition: transform .25s; }

.gold-marquee div { animation: goldTicker 18s linear infinite; }
@keyframes goldTicker { to { transform: translateX(-42%); } }
.section-pad { padding: clamp(86px,10vw,152px) clamp(22px,5vw,82px); }
.section-number { display: block; font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; }
.eyebrow.dark { color: #6d675e; }

.brand-manifesto { position: relative; display: grid; grid-template-columns: .28fr 1.25fr .52fr; gap: clamp(35px,6vw,96px); overflow: hidden; background: var(--ivory); color: var(--ink); }
.manifesto-title .eyebrow { margin-top: 48px; }
.manifesto-title h2 { position: relative; z-index: 1; margin: 0; font-family: var(--display); font-size: clamp(52px,5.9vw,102px); font-weight: 400; line-height: .91; letter-spacing: -.05em; }
.manifesto-title h2 em { color: var(--gold-deep); font-weight: 400; }
.manifesto-copy { position: relative; z-index: 1; padding-top: 66px; }
.manifesto-copy > p { margin: 0; color: #514d46; font-size: 12px; line-height: 1.85; }
.manifesto-points { display: flex; flex-direction: column; margin-top: 34px; border-top: 1px solid rgba(9,9,8,.17); }
.manifesto-points span { padding: 15px 0; border-bottom: 1px solid rgba(9,9,8,.17); font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }
.manifesto-logo { position: absolute; right: -90px; bottom: -170px; width: 560px; height: 560px; opacity: .055; mix-blend-mode: multiply; pointer-events: none; }
.manifesto-logo img { width: 100%; height: 100%; object-fit: cover; }

.services { background: var(--ink); }
.service { min-height: 800px; display: grid; grid-template-columns: 1fr 1fr; }
.service-image { position: relative; min-height: 740px; overflow: hidden; background: #d9c5ae; }
.service-image img { width: 100%; height: 100%; object-fit: cover; filter: none !important; opacity: 1; transition: transform .8s cubic-bezier(.2,.7,.1,1); }
.service:hover .service-image img { transform: scale(1.025); }
.service-image > span { position: absolute; right: 20px; bottom: 20px; padding: 11px 13px; background: rgba(9,9,8,.85); color: var(--ivory); font-size: 7px; text-transform: uppercase; letter-spacing: .14em; backdrop-filter: blur(10px); }
.service-image > .light-caption { background: rgba(247,243,235,.88); color: var(--ink); }
.service-copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(64px,7.7vw,132px); }
.service-dark .service-copy { background: #11100e; }
.service-light .service-copy { background: var(--paper); color: var(--ink); }
.service-index { position: absolute; top: 43px; right: 50px; color: var(--gold); font-family: var(--display); font-size: 46px; }
.service h2 { margin: 0; font-family: var(--display); font-size: clamp(54px,5vw,88px); font-weight: 400; line-height: .88; letter-spacing: -.05em; }
.service h2 em { color: var(--gold-bright); font-weight: 400; }
.service-light h2 em { color: var(--gold-deep); }
.service-copy > p:not(.eyebrow) { max-width: 600px; margin: 31px 0 0; color: #aaa399; font-size: 12px; line-height: 1.85; }
.service-light .service-copy > p:not(.eyebrow) { color: #4f4a43; }
.service ul { display: grid; grid-template-columns: repeat(2,max-content); gap: 12px 32px; margin: 32px 0 0; padding: 0; list-style: none; }
.service li { position: relative; padding-left: 14px; color: #a8a096; font-size: 7px; font-weight: 600; text-transform: uppercase; letter-spacing: .13em; }
.service-light li { color: #4d4842; }
.service li::before { content: '✦'; position: absolute; left: 0; top: -2px; color: var(--gold); font-size: 7px; }
.gold-link { width: max-content; margin-top: 38px; padding-bottom: 7px; border-bottom: 1px solid #5b554b; color: var(--ivory); font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }
.gold-link span { margin-left: 8px; color: var(--gold-bright); font-size: 14px; }
.dark-link { color: var(--ink); border-color: rgba(9,9,8,.34); }

.portfolio { background: var(--ivory); color: var(--ink); }
.portfolio-head { display: grid; grid-template-columns: 1.3fr .52fr; gap: clamp(55px,10vw,168px); align-items: end; }
.portfolio-head .eyebrow { margin-top: 48px; }
.portfolio-head h2 { margin: 0; font-family: var(--display); font-size: clamp(60px,6.6vw,110px); font-weight: 400; line-height: .87; letter-spacing: -.055em; }
.portfolio-head h2 em { color: var(--gold-deep); font-weight: 400; }
.portfolio-head > p { margin: 0 0 8px; color: #5b554d; font-size: 12px; line-height: 1.8; }
.filters { display: flex; margin: 70px 0 30px; border-bottom: 1px solid rgba(9,9,8,.17); }
.filters button { position: relative; flex: 0 0 auto; padding: 0 22px 17px; border: 0; background: none; color: #716b63; font-family: var(--sans); font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; cursor: pointer; }
.filters button:first-child { padding-left: 0; }
.filters button::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 0; height: 2px; background: var(--gold-deep); transition: width .25s; }
.filters button.active { color: var(--ink); }
.filters button.active::after { width: 100%; }
.filters sup { margin-left: 4px; color: var(--gold-deep); font-size: 6px; }
.gallery { display: grid; grid-template-columns: repeat(4,1fr); gap: clamp(15px,2vw,31px); align-items: start; }
.gallery-card { margin: 0; }
.gallery-card.hidden-card { display: none; }
.gallery-card.span-2 { grid-column: span 2; }
.gallery-card > button { position: relative; width: 100%; min-height: 330px; aspect-ratio: .8; display: block; overflow: hidden; padding: 0; border: 0; background: #d7cfc4; cursor: zoom-in; }
.gallery-card.span-2 > button { aspect-ratio: 1.35; }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; filter: none !important; transition: transform .5s ease; }
.gallery-card button:hover img { transform: scale(1.035); }
.gallery-card button span { position: absolute; top: 13px; right: 13px; padding: 10px 12px; background: rgba(247,243,235,.9); color: var(--ink); font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; opacity: 0; transform: translateY(5px); transition: opacity .2s,transform .2s; }
.gallery-card button:hover span { opacity: 1; transform: none; }
.gallery-card figcaption { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; padding: 14px 0 24px; border-top: 1px solid rgba(9,9,8,.09); }
.gallery-card figcaption strong { font-family: var(--display); font-size: 18px; font-weight: 400; }
.gallery-card figcaption small { grid-column: 1; color: #777067; font-size: 7px; text-transform: uppercase; letter-spacing: .13em; }
.gallery-card figcaption b { grid-column: 2; grid-row: 1 / 3; color: var(--gold-deep); font-size: 7px; }

.quote-band { position: relative; min-height: 530px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80px 22px; overflow: hidden; background: linear-gradient(125deg,#161511,#090908); text-align: center; }
.quote-band > span { position: absolute; top: -120px; left: 50%; transform: translateX(-50%); color: rgba(200,155,69,.09); font-family: var(--display); font-size: 500px; line-height: 1; }
.quote-band blockquote { position: relative; max-width: 1250px; margin: 0; font-family: var(--display); font-size: clamp(50px,6.4vw,108px); font-weight: 400; line-height: .9; letter-spacing: -.045em; }
.quote-band blockquote em { color: var(--gold-bright); font-weight: 400; }
.quote-band small { position: relative; margin-top: 30px; color: #7c756a; font-size: 7px; text-transform: uppercase; letter-spacing: .18em; }

.process { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(70px,10vw,170px); background: var(--ink); }
.process-head { position: sticky; top: 110px; align-self: start; }
.process-head .eyebrow { margin-top: 48px; }
.process-head h2 { margin: 0; font-family: var(--display); font-size: clamp(56px,5.2vw,90px); font-weight: 400; line-height: .88; letter-spacing: -.05em; }
.process-head h2 em { color: var(--gold-bright); font-weight: 400; }
.process-head > p:not(.eyebrow) { max-width: 530px; margin: 28px 0 0; color: #9f988e; font-size: 12px; line-height: 1.85; }
.button-outline { margin-top: 34px; border: 1px solid #555047; color: var(--ivory); }
.button-outline span { margin-left: 12px; color: var(--gold-bright); font-size: 14px; }
.button-outline:hover { background: var(--ivory); color: var(--ink); }
.steps { margin: 0; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 48px 1fr auto; gap: 20px; align-items: start; padding: 38px 0; border-top: 1px solid var(--line-dark); }
.steps li:last-child { border-bottom: 1px solid var(--line-dark); }
.steps > li > span { color: var(--gold); font-size: 7px; font-weight: 700; }
.steps strong { font-family: var(--display); font-size: clamp(27px,2.4vw,39px); font-weight: 400; }
.steps p { max-width: 580px; margin: 12px 0 0; color: #918a82; font-size: 11px; line-height: 1.75; }
.steps li > b { color: var(--gold); font-size: 17px; font-weight: 400; }

.about { min-height: 900px; display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); color: var(--ink); }
.about-image { position: relative; min-height: 800px; overflow: hidden; }
.about-image > img { width: 100%; height: 100%; object-fit: cover; object-position: center 23%; filter: none !important; opacity: 1; }
.about-logo { position: absolute; right: 25px; bottom: 25px; width: 140px; height: 140px; overflow: hidden; border-radius: 50%; background: white; box-shadow: 0 18px 50px rgba(0,0,0,.2); }
.about-logo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); }
.about-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(70px,8vw,140px); }
.about-copy .eyebrow { margin-top: 48px; }
.about-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(57px,5.5vw,94px); font-weight: 400; line-height: .88; letter-spacing: -.05em; }
.about-copy h2 em { color: var(--gold-deep); font-weight: 400; }
.about-copy > p:not(.eyebrow) { max-width: 640px; margin: 27px 0 0; color: #514d46; font-size: 12px; line-height: 1.85; }
.values { display: flex; flex-wrap: wrap; gap: 26px; margin-top: 33px; padding-top: 22px; border-top: 1px solid rgba(9,9,8,.17); }
.values span { font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }
.values b { margin-right: 7px; color: var(--gold-deep); }
.signature { margin-top: 34px; color: var(--gold-deep); font-family: var(--display); font-size: 34px; font-style: italic; }

.faq { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(65px,11vw,190px); background: var(--ivory); color: var(--ink); }
.faq-title .eyebrow { margin-top: 48px; }
.faq-title h2 { margin: 0; font-family: var(--display); font-size: clamp(56px,5.3vw,90px); font-weight: 400; line-height: .89; letter-spacing: -.05em; }
.faq-title h2 em { color: var(--gold-deep); font-weight: 400; }
.faq-title .gold-link { display: block; margin-top: 34px; }
.faq-list details { border-top: 1px solid rgba(9,9,8,.17); }
.faq-list details:last-child { border-bottom: 1px solid rgba(9,9,8,.17); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 0; list-style: none; font-family: var(--display); font-size: clamp(23px,2vw,31px); cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--gold-deep); font-family: var(--sans); font-size: 19px; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 720px; margin: -2px 52px 27px 0; color: #5b564f; font-size: 11px; line-height: 1.8; }

.final-cta { min-height: 720px; display: grid; grid-template-columns: .66fr 1.34fr; background: #11100e; }
.final-image { min-height: 650px; overflow: hidden; }
.final-image img { width: 100%; height: 100%; object-fit: cover; filter: none !important; }
.final-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(65px,8vw,138px); }
.final-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(57px,6vw,102px); font-weight: 400; line-height: .86; letter-spacing: -.055em; }
.final-copy h2 em { color: var(--gold-bright); font-weight: 400; }
.final-copy > p:not(.eyebrow) { max-width: 640px; margin: 29px 0 0; color: #a39b91; font-size: 12px; line-height: 1.85; }
.final-copy .button { width: max-content; margin-top: 33px; }
.final-copy small { margin-top: 15px; color: #716b63; font-size: 7px; text-transform: uppercase; letter-spacing: .14em; }

.site-footer { display: grid; grid-template-columns: 1.3fr .55fr .55fr; gap: 55px; padding: 70px clamp(22px,5vw,82px) 24px; border-top: 1px solid var(--line-dark); background: #070706; }
.footer-logo { width: 72px; height: 72px; }
.footer-brand > p { max-width: 390px; margin: 25px 0 0; color: #777067; font-size: 10px; line-height: 1.75; }
.site-footer nav,.footer-contact { display: flex; flex-direction: column; gap: 13px; font-size: 8px; text-transform: uppercase; letter-spacing: .14em; }
.site-footer nav strong,.footer-contact strong { margin-bottom: 8px; color: #615c55; font-size: 7px; }
.footer-contact a { color: var(--gold-bright); }
.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; padding-top: 28px; border-top: 1px solid var(--line-dark); color: #5f5a54; font-size: 7px; text-transform: uppercase; letter-spacing: .14em; }
.whatsapp-float { position: fixed; z-index: 50; right: 17px; bottom: 17px; display: flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 17px; border-radius: 28px; background: linear-gradient(135deg,var(--gold-bright),var(--gold)); color: var(--ink); box-shadow: 0 12px 42px rgba(0,0,0,.28); font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.whatsapp-float span { font-size: 9px; }

.lightbox { position: fixed; z-index: 400; inset: 0; display: grid; place-items: center; padding: 45px 90px; }
.lightbox-bg { position: absolute; inset: 0; border: 0; background: rgba(3,3,3,.96); backdrop-filter: blur(16px); cursor: zoom-out; }
.lightbox figure { position: relative; z-index: 2; width: min(80vw,980px); height: min(82vh,900px); margin: 0; display: grid; grid-template-rows: minmax(0,1fr) auto; }
.lightbox figure img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.lightbox figcaption { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-top: 18px; }
.lightbox figcaption strong { font-family: var(--display); font-size: 25px; font-weight: 400; }
.lightbox figcaption span { color: #8b8379; font-size: 7px; text-transform: uppercase; letter-spacing: .15em; }
.lightbox-close,.lightbox-nav { position: fixed; z-index: 3; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: rgba(9,9,8,.55); color: white; cursor: pointer; }
.lightbox-close { top: 25px; right: 26px; font-size: 27px; }
.lightbox-nav { top: 50%; font-size: 18px; }
.lightbox-prev { left: 26px; }
.lightbox-next { right: 26px; }

.reveal { opacity: 1; transform: none; }
.enhanced .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease,transform .7s ease; }
.enhanced .reveal.visible { opacity: 1; transform: none; }

@media (max-width:1120px) {
  .brand-manifesto { grid-template-columns: .3fr 1.4fr; }
  .manifesto-copy { grid-column: 2; padding-top: 0; }
  .gallery { grid-template-columns: repeat(3,1fr); }
  .gallery-card.span-2 { grid-column: span 1; }
  .gallery-card:nth-child(5n+1) { grid-column: span 2; }
  .gallery-card:nth-child(5n+1) > button { aspect-ratio: 1.35; }
}
@media (max-width:840px) {
  .section-pad { padding-block: 88px; }
  .brand-manifesto,.portfolio-head,.process,.faq { grid-template-columns:1fr; }
  .manifesto-copy { grid-column:auto; }
  .service { grid-template-columns:1fr; }
  .service-image { min-height:650px; }
  .service-copy { min-height:650px; padding:80px 34px; }
  .service-light .service-copy { order:2; }
  .portfolio-head > p { max-width:600px; }
  .gallery { grid-template-columns:repeat(2,1fr); }
  .gallery-card:nth-child(n) { grid-column:span 1; }
  .gallery-card:nth-child(5n+1) { grid-column:span 2; }
  .process-head { position:static; }
  .about { grid-template-columns:1fr; }
  .about-image { min-height:800px; }
  .about-copy { min-height:760px; padding:85px 32px; }
  .final-cta { grid-template-columns:1fr; }
  .final-image { height:620px; }
  .final-copy { min-height:680px; padding:85px 30px; }
  .site-footer { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
}
@media (max-width:580px) {
  .service-image { min-height:520px; }
  .service-copy { min-height:620px; padding:78px 20px 55px; }
  .service h2 { font-size:55px; }
  .service ul { grid-template-columns:1fr; }
  .filters { overflow-x:auto; }
  .filters button { padding-inline:14px; }
  .gallery { grid-template-columns:1fr; }
  .gallery-card:nth-child(n) { grid-column:span 1; }
  .gallery-card > button,.gallery-card.span-2 > button,.gallery-card:nth-child(5n+1) > button { min-height:430px; aspect-ratio:.86; }
  .gallery-card button span { opacity:1; transform:none; }
  .steps li { grid-template-columns:32px 1fr auto; }
  .about-image { min-height:620px; }
  .about-copy { min-height:0; padding:80px 21px; }
  .about-logo { width:108px; height:108px; }
  .final-image { height:530px; }
  .final-copy { min-height:650px; padding:80px 21px; }
  .final-copy .button { width:100%; }
  .site-footer { grid-template-columns:1fr; gap:38px; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { flex-direction:column; gap:13px; }
  .lightbox { padding:65px 12px; }
  .lightbox figure { width:100%; height:70vh; }
  .lightbox-nav { top:auto; bottom:16px; }
  .lightbox-prev { left:calc(50% - 58px); }
  .lightbox-next { right:calc(50% - 58px); }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* Hostinger edition: studio, original Canva offers and safe service notes */
.service-disclaimer { display:block; margin:-26px 0 30px; color:#746f67; font-size:8px; line-height:1.6; }
.studio-section { position:relative; min-height:900px; display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(55px,8vw,140px); align-items:center; overflow:hidden; background:radial-gradient(circle at 76% 42%,#302d27,#11100e 53%,#090908); }
.studio-section::before { content:''; position:absolute; left:-14vw; top:16%; width:40vw; aspect-ratio:1; border:1px solid rgba(200,155,69,.13); border-radius:50%; }
.studio-copy { position:relative; z-index:2; }
.studio-copy .eyebrow { margin-top:46px; }
.studio-copy h2 { margin:0; font-family:var(--display); font-size:clamp(58px,5.8vw,100px); font-weight:400; line-height:.88; letter-spacing:-.05em; }
.studio-copy h2 em { color:var(--gold-bright); font-weight:400; }
.studio-points { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:36px; }
.studio-points p { margin:0; color:#a9a198; font-size:11px; line-height:1.8; }
.studio-points strong { color:#e1dbd0; text-transform:uppercase; }
.studio-visual { position:relative; min-height:680px; }
.studio-visual img { position:absolute; object-fit:cover; box-shadow:0 24px 70px rgba(0,0,0,.35); }
.studio-portrait { inset:0 10% 3% 6%; width:84%; height:97%; object-position:center 20%; }
.studio-jewel { top:-4%; right:0; width:29%; height:43%; border:6px solid #171612; }
.studio-detail { left:-3%; bottom:-2%; width:27%; height:40%; border:6px solid #171612; }
.studio-visual > span { position:absolute; z-index:3; right:1%; bottom:4%; width:138px; height:138px; display:grid; place-content:center; gap:4px; padding:18px; border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-bright),#a87624); color:var(--ink); text-align:center; font-size:7px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.studio-visual > span b { font-family:var(--display); font-size:31px; font-weight:400; }

.promotions { position:relative; min-height:100svh; overflow:hidden; background:radial-gradient(circle at 86% 12%,rgba(200,155,69,.12),transparent 28%),linear-gradient(145deg,#11100d,#090908 62%); }
.promotions::before { content:'CONDIÇÕES'; position:absolute; top:70px; right:-.035em; color:rgba(239,209,110,.035); font-family:var(--display); font-size:clamp(112px,18vw,330px); font-weight:500; line-height:.78; letter-spacing:-.08em; pointer-events:none; }
.promotions-head { position:relative; z-index:1; display:grid; grid-template-columns:1.25fr .55fr; gap:clamp(55px,9vw,150px); align-items:end; }
.promotions-head .eyebrow { margin-top:46px; }
.promotions-head h2 { max-width:960px; margin:0; font-family:var(--display); font-size:clamp(66px,6.7vw,116px); font-weight:500; line-height:.82; letter-spacing:-.052em; }
.promotions-head h2 em { color:var(--gold-bright); font-weight:400; }
.promotions-head > p { max-width:520px; margin:0 0 7px; color:#aaa399; font-size:12px; line-height:1.85; }
.promo-benefits { position:relative; z-index:1; display:flex; justify-content:space-between; gap:20px; margin-top:48px; padding:20px 0; border-top:1px solid rgba(255,255,255,.14); border-bottom:1px solid rgba(255,255,255,.14); }
.promo-benefits span { display:flex; align-items:center; gap:11px; color:#c6beb3; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
.promo-benefits span::before { content:'✦'; color:var(--gold-bright); font-size:8px; }
.promo-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.16fr .92fr .92fr; grid-auto-flow:dense; gap:20px; margin-top:28px; }
.promo-card { position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.14); background:linear-gradient(155deg,#1b1915,#11100e); transition:transform .32s ease,border-color .32s ease,box-shadow .32s ease; }
.promo-card::before { position:absolute; z-index:2; top:18px; left:18px; min-width:34px; padding:8px 10px; border:1px solid rgba(255,255,255,.2); background:rgba(9,9,8,.72); color:var(--gold-bright); font-size:7px; font-weight:700; letter-spacing:.16em; backdrop-filter:blur(8px); }
.promo-card:nth-child(1)::before { content:'01'; }
.promo-card:nth-child(2)::before { content:'02'; }
.promo-card:nth-child(3)::before { content:'03'; }
.promo-card:nth-child(4)::before { content:'04'; }
.promo-card:nth-child(5)::before { content:'05'; }
.promo-card:nth-child(6)::before { content:'06'; }
.promo-card:nth-child(7)::before { content:'07'; }
.promo-card:hover { transform:translateY(-5px); border-color:rgba(239,209,110,.44); box-shadow:0 24px 55px rgba(0,0,0,.24); }
.promo-card > img { width:100%; height:290px; object-fit:cover; transition:transform .65s cubic-bezier(.2,.7,.1,1),filter .4s ease; }
.promo-card:hover > img { transform:scale(1.035); filter:saturate(1.05); }
.promo-card > div { display:grid; min-height:242px; padding:27px; }
.promo-card small { max-width:34ch; color:#918a80; font-size:8px; line-height:1.65; text-transform:uppercase; letter-spacing:.11em; }
.promo-card h3 { min-height:0; margin:14px 0 7px; font-family:var(--display); font-size:clamp(31px,2.5vw,42px); font-weight:500; line-height:.92; letter-spacing:-.025em; }
.promo-card strong { color:var(--gold-bright); font-family:var(--display); font-size:clamp(30px,2.4vw,39px); font-weight:500; line-height:1; }
.promo-card a { display:flex; align-items:end; justify-content:space-between; margin-top:24px; padding-top:16px; border-top:1px solid rgba(255,255,255,.14); color:#e2ddd4; font-size:7px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; transition:color .2s ease,border-color .2s ease; }
.promo-card a:hover { color:var(--gold-bright); border-color:rgba(239,209,110,.5); }
.promo-featured { grid-column:span 2; grid-row:span 2; }
.promo-featured > img { height:610px; }
.promo-featured > div { min-height:268px; grid-template-columns:1fr auto; column-gap:35px; align-items:end; }
.promo-featured small,.promo-featured h3 { grid-column:1; }
.promo-featured h3 { font-size:clamp(44px,4.2vw,72px); }
.promo-featured strong { grid-column:2; grid-row:1 / 3; align-self:end; font-size:clamp(40px,3.4vw,58px); }
.promo-featured a { grid-column:1 / -1; }
.promo-note { position:relative; z-index:1; margin:30px 0 0; color:#817a70; font-size:8px; line-height:1.7; letter-spacing:.06em; }

@media (max-width:1050px) {
  .site-header nav { gap:20px; }
  .studio-section { grid-template-columns:1fr; }
  .studio-copy { max-width:800px; }
  .studio-visual { min-height:720px; }
  .promo-grid { grid-template-columns:repeat(2,1fr); }
  .promo-featured { grid-column:span 2; }
  .promo-featured > div { grid-template-columns:1fr; }
  .promo-featured strong { grid-column:1; grid-row:auto; }
  .promo-featured a { grid-column:1; }
}
@media (max-width:840px) {
  .studio-section { min-height:auto; }
  .studio-points { grid-template-columns:1fr; }
  .promotions-head { grid-template-columns:1fr; }
  .promotions-head > p { max-width:620px; }
  .promo-benefits { justify-content:flex-start; flex-wrap:wrap; gap:16px 30px; }
}
@media (max-width:580px) {
  .studio-section { padding-inline:21px; }
  .studio-copy h2,.promotions-head h2 { font-size:55px; }
  .studio-visual { min-height:560px; }
  .studio-portrait { inset:0 4% 3%; width:92%; }
  .studio-jewel { width:34%; height:38%; }
  .studio-detail { width:32%; height:36%; }
  .studio-visual > span { width:110px; height:110px; }
  .promo-grid { grid-template-columns:1fr; }
  .promo-featured { grid-column:span 1; }
  .promo-featured > img,.promo-card > img { height:390px; }
  .promo-card > div,.promo-featured > div { min-height:0; padding:23px 20px; }
  .promo-card h3,.promo-featured h3 { font-size:36px; }
  .promo-card strong,.promo-featured strong { font-size:33px; }
}

/* Motion & light layer: progressive, responsive and accessibility-safe */
:root { --motion-ease:cubic-bezier(.2,.72,.12,1); }
.brand-logo { position:relative; isolation:isolate; }
.brand-logo::after { content:''; position:absolute; inset:-35%; z-index:2; background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.72) 49%,transparent 60%); transform:translateX(-120%) rotate(8deg); animation:logoSheen 7s ease-in-out infinite 1.5s; pointer-events:none; }
@keyframes logoSheen { 0%,68% { transform:translateX(-120%) rotate(8deg); } 83%,100% { transform:translateX(120%) rotate(8deg); } }

.has-motion .hero-content > .hero-meta,
.has-motion .hero-content > .eyebrow,
.has-motion .hero-content > h1,
.has-motion .hero-content > .hero-lead,
.has-motion .hero-content > .hero-actions,
.has-motion .hero-content > .hero-footer { opacity:0; transform:translateY(24px); transition:opacity .9s var(--motion-ease),transform .9s var(--motion-ease); }
.has-motion .hero-content > h1 { clip-path:inset(0 0 100% 0); transform:translateY(34px); transition:opacity 1s var(--motion-ease),transform 1s var(--motion-ease),clip-path 1.15s var(--motion-ease); }
.motion-ready .hero-content > .hero-meta,
.motion-ready .hero-content > .eyebrow,
.motion-ready .hero-content > h1,
.motion-ready .hero-content > .hero-lead,
.motion-ready .hero-content > .hero-actions,
.motion-ready .hero-content > .hero-footer { opacity:1; transform:none; clip-path:inset(0); }
.motion-ready .hero-content > .hero-meta { transition-delay:.08s; }
.motion-ready .hero-content > .eyebrow { transition-delay:.16s; }
.motion-ready .hero-content > h1 { transition-delay:.22s; }
.motion-ready .hero-content > .hero-lead { transition-delay:.38s; }
.motion-ready .hero-content > .hero-actions { transition-delay:.48s; }
.motion-ready .hero-content > .hero-footer { transition-delay:.6s; }

.motion-title em { display:inline-block; background:linear-gradient(105deg,#a66f20 0%,#efd16e 32%,#fff0ad 48%,#c89b45 66%,#efd16e 100%); background-size:230% auto; color:transparent!important; -webkit-background-clip:text; background-clip:text; animation:goldTextFlow 7s ease-in-out infinite; filter:drop-shadow(0 0 18px rgba(239,209,110,.08)); }
.brand-manifesto .motion-title em,.portfolio .motion-title em,.about .motion-title em,.faq .motion-title em,.service-light .motion-title em { background-image:linear-gradient(105deg,#714716 0%,#c89b45 33%,#f0cf76 49%,#8f6427 68%,#c89b45 100%); }
@keyframes goldTextFlow { 0%,18% { background-position:100% 50%; } 55%,100% { background-position:0 50%; } }

.motion-stage { position:relative; isolation:isolate; }
.motion-stage > .stage-light { position:absolute!important; z-index:0!important; top:9%; left:54%; width:min(58vw,940px); aspect-ratio:1.25; border-radius:50%; background:radial-gradient(ellipse,rgba(239,209,110,.1),rgba(200,155,69,.035) 36%,transparent 70%); filter:blur(18px); opacity:0; transform:translate3d(-2%,60px,0) scale(.86); transition:opacity 1.2s ease,transform 1.8s var(--motion-ease); pointer-events:none; }
.motion-stage.is-current > .stage-light { opacity:.72; transform:translate3d(0,0,0) scale(1); }
.brand-manifesto .stage-light,.portfolio .stage-light,.about .stage-light,.faq .stage-light { background:radial-gradient(ellipse,rgba(200,155,69,.1),transparent 69%); mix-blend-mode:multiply; opacity:0; }
.brand-manifesto.is-current > .stage-light,.portfolio.is-current > .stage-light,.about.is-current > .stage-light,.faq.is-current > .stage-light { opacity:.42; }

.enhanced .reveal { transition-delay:var(--reveal-delay,0ms); transition-duration:.92s; transition-timing-function:var(--motion-ease); }
.enhanced .promo-card.reveal,.enhanced .gallery-card.reveal { transform:translateY(38px) scale(.975); }
.enhanced .promo-card.reveal.visible,.enhanced .gallery-card.reveal.visible { transform:none; }
.enhanced .promo-benefits span,.enhanced .steps li,.enhanced .studio-points p { opacity:0; transform:translateY(18px); transition:opacity .72s var(--motion-ease),transform .72s var(--motion-ease); transition-delay:var(--reveal-delay,0ms); }
.enhanced .promo-benefits.visible span,.enhanced .steps.visible li,.enhanced .studio-copy.visible .studio-points p { opacity:1; transform:none; }
.section-number { position:relative; width:max-content; padding-left:30px; }
.section-number::before { content:''; position:absolute; left:0; top:50%; width:19px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); transform-origin:left; animation:linePulse 3.8s ease-in-out infinite; }
@keyframes linePulse { 0%,100% { transform:scaleX(.55); opacity:.5; } 50% { transform:scaleX(1); opacity:1; } }

.cursor-glow { position:fixed; z-index:18; top:0; left:0; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle,rgba(239,209,110,.08),rgba(200,155,69,.025) 35%,transparent 68%); opacity:0; mix-blend-mode:screen; pointer-events:none; transition:opacity .45s ease; will-change:transform; }
.cursor-glow.is-visible { opacity:1; }
.button-gold { position:relative; overflow:hidden; isolation:isolate; }
.button-gold::before { content:''; position:absolute; z-index:-1; inset:-40%; background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.46) 49%,transparent 58%); transform:translateX(-115%) rotate(8deg); transition:transform .75s var(--motion-ease); }
.button-gold:hover::before { transform:translateX(115%) rotate(8deg); }

@media (hover:hover) and (pointer:fine) {
  .motion-card { --tilt-x:0deg; --tilt-y:0deg; --glow-x:50%; --glow-y:50%; transform:perspective(1050px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift,0)); transform-style:preserve-3d; transition:transform .22s ease,border-color .32s ease,box-shadow .32s ease; will-change:transform; }
  .promo-card.motion-card:hover { --lift:-6px; transform:perspective(1050px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift)); }
  .enhanced .promo-card.reveal.visible.motion-card { transform:perspective(1050px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(0); }
  .enhanced .promo-card.reveal.visible.motion-card:hover { transform:perspective(1050px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-6px); }
  .promo-card.motion-card::after { content:''; position:absolute; z-index:1; inset:0; background:radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(255,237,171,.18),transparent 28%); opacity:0; transition:opacity .3s ease; pointer-events:none; }
  .promo-card.motion-card:hover::after { opacity:1; }
  .promo-card.motion-card > div { position:relative; z-index:2; }
  .gallery-card > button.motion-card::before { content:''; position:absolute; z-index:2; inset:0; background:radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(255,244,201,.24),transparent 28%); opacity:0; mix-blend-mode:screen; transition:opacity .28s ease; pointer-events:none; }
  .gallery-card > button.motion-card:hover::before { opacity:1; }
  .gallery-card > button.motion-card:hover { box-shadow:0 24px 54px rgba(42,30,11,.18); }
  .gallery-card > button.motion-card span { z-index:3; }
}

@media (max-width:840px) {
  .motion-stage > .stage-light { left:30%; width:95vw; filter:blur(28px); }
  .cursor-glow { display:none; }
  .has-motion .hero-content > .hero-footer { transition-delay:.42s; }
}

@media (max-width:580px) {
  .motion-title em { animation-duration:9s; }
  .motion-stage > .stage-light { top:7%; left:10%; width:125vw; opacity:0; }
  .motion-stage.is-current > .stage-light { opacity:.42; }
  .enhanced .promo-card.reveal,.enhanced .gallery-card.reveal { transform:translateY(25px) scale(.99); }
}

@media (prefers-reduced-motion:reduce) {
  .brand-logo::after,.motion-title em,.section-number::before { animation:none!important; }
  .cursor-glow,.stage-light { display:none!important; }
  .has-motion .hero-content > * { opacity:1!important; transform:none!important; clip-path:none!important; transition:none!important; }
  .motion-card { transform:none!important; }
  .enhanced .reveal { transition-delay:0ms!important; }
}

/* Readability, living light and WhatsApp contact flow */
.metric-number { display:inline-block; margin-inline:.02em; color:inherit; font-family:var(--sans); font-size:.72em; font-style:normal; font-weight:600; line-height:1; letter-spacing:-.08em; vertical-align:.08em; }
.section-number { font-size:9px; font-weight:700; }
.eyebrow { font-size:9px; font-weight:700; }
.site-header nav a,.header-cta,.button,.text-link,.gold-link,.filters button { font-size:9px; font-weight:700; }
.brand-name strong { font-size:13px; font-weight:700; }
.brand-name small,.hero-meta,.hero-footer { font-size:8px; font-weight:600; }
.manifesto-copy > p,.service-copy > p:not(.eyebrow),.portfolio-head > p,.process-head > p:not(.eyebrow),.about-copy > p:not(.eyebrow),.final-copy > p:not(.eyebrow),.promotions-head > p { font-size:13px; font-weight:500; }
.studio-points p,.steps p,.faq-list details p,.footer-brand > p { font-size:12px; font-weight:500; }
.service li,.values span,.promo-card small,.promo-note,.promo-benefits span,.gallery-card figcaption small,.final-copy small,.service-disclaimer { font-size:8.5px; font-weight:700; }
.promo-card a,.gallery-card button span,.portrait-caption,.service-image > span { font-size:8px; }

.motion-stage > .stage-light { overflow:visible; }
.motion-stage > .stage-light::before { content:''; position:absolute; inset:9%; border-radius:50%; background:conic-gradient(from 25deg,transparent,rgba(239,209,110,.22),transparent 23%,rgba(200,155,69,.1),transparent 57%,rgba(255,238,170,.18),transparent); -webkit-mask:radial-gradient(circle,transparent 60%,#000 61%,#000 63%,transparent 64%); mask:radial-gradient(circle,transparent 60%,#000 61%,#000 63%,transparent 64%); animation:lightOrbit 18s linear infinite; }
.motion-stage > .stage-light::after { content:''; position:absolute; top:13%; left:18%; width:20%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(255,244,196,.22),rgba(239,209,110,.06) 36%,transparent 70%); filter:blur(5px); animation:lightDrift 8s var(--motion-ease) infinite alternate; }
@keyframes lightOrbit { to { transform:rotate(1turn); } }
@keyframes lightDrift { from { transform:translate3d(-8%,16%,0) scale(.8); opacity:.45; } to { transform:translate3d(260%,115%,0) scale(1.35); opacity:1; } }
.motion-stage.is-current .motion-title { filter:drop-shadow(0 0 28px rgba(239,209,110,.05)); }
.gallery-card figcaption strong { transition:color .3s ease,transform .3s var(--motion-ease); }
.gallery-card:hover figcaption strong { color:var(--gold-deep); transform:translateX(4px); }

.whatsapp-enhanced { gap:9px; }
.whatsapp-icon { flex:0 0 auto; width:15px; height:15px; box-sizing:content-box; padding:3px; border-radius:50%; background:#25d366; color:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 18px rgba(37,211,102,.2); vertical-align:middle; }
.header-cta.whatsapp-enhanced,.gold-link.whatsapp-enhanced,.footer-contact a.whatsapp-enhanced { display:inline-flex; align-items:center; }
.button.whatsapp-enhanced,.mobile-book.whatsapp-enhanced,.whatsapp-float.whatsapp-enhanced { display:inline-flex; align-items:center; }
.promo-card a.whatsapp-enhanced { align-items:center; justify-content:flex-start; gap:10px; }
.whatsapp-float .whatsapp-icon { width:16px; height:16px; }
body.contact-open { overflow:hidden; }

.contact-modal { position:fixed; z-index:520; inset:0; display:grid; place-items:center; padding:24px; opacity:0; transition:opacity .28s ease; }
.contact-modal.is-open { opacity:1; }
.contact-modal-bg { position:absolute; inset:0; border:0; background:rgba(3,3,3,.84); backdrop-filter:blur(18px); cursor:pointer; }
.contact-panel { position:relative; z-index:1; width:min(760px,calc(100vw - 40px)); max-height:calc(100svh - 48px); overflow:auto; padding:clamp(30px,4vw,56px); border:1px solid rgba(239,209,110,.28); background:radial-gradient(circle at 90% 0,rgba(200,155,69,.19),transparent 28%),linear-gradient(145deg,#171511,#0d0c0a 64%); box-shadow:0 35px 110px rgba(0,0,0,.58),0 0 70px rgba(200,155,69,.08); transform:translateY(34px) scale(.96); transition:transform .5s var(--motion-ease); isolation:isolate; }
.contact-modal.is-open .contact-panel { transform:none; }
.contact-panel::before { content:''; position:absolute; z-index:3; top:-1px; left:0; width:42%; height:2px; background:linear-gradient(90deg,transparent,var(--gold-bright),transparent); box-shadow:0 0 24px rgba(239,209,110,.48); animation:contactBeam 4.8s ease-in-out infinite; }
@keyframes contactBeam { 0%,100% { transform:translateX(-75%); opacity:.35; } 50% { transform:translateX(210%); opacity:1; } }
.contact-aurora { position:absolute; z-index:-1; right:-18%; bottom:-34%; width:70%; aspect-ratio:1; border-radius:50%; background:conic-gradient(from 20deg,rgba(239,209,110,.2),transparent 32%,rgba(37,211,102,.08),transparent 66%,rgba(200,155,69,.16)); filter:blur(44px); animation:contactAurora 13s linear infinite; pointer-events:none; }
@keyframes contactAurora { to { transform:rotate(1turn) scale(1.08); } }
.contact-close { position:absolute; z-index:4; top:18px; right:18px; width:42px; height:42px; border:1px solid rgba(255,255,255,.2); border-radius:50%; background:rgba(9,9,8,.55); color:var(--ivory); font-size:24px; cursor:pointer; transition:transform .25s ease,border-color .25s ease,color .25s ease; }
.contact-close:hover { transform:rotate(90deg); border-color:var(--gold-bright); color:var(--gold-bright); }
.contact-heading { max-width:620px; padding-right:42px; }
.contact-heading .eyebrow { margin-bottom:20px; }
.contact-heading h2 { margin:0; font-family:var(--display); font-size:clamp(48px,6.2vw,78px); font-weight:500; line-height:.83; letter-spacing:-.045em; }
.contact-heading > p:last-child { max-width:540px; margin:22px 0 0; color:#aaa399; font-size:12px; font-weight:500; line-height:1.75; }
.contact-context { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:30px; padding:14px 0; border-top:1px solid rgba(255,255,255,.14); border-bottom:1px solid rgba(255,255,255,.14); }
.contact-context span { color:#777067; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
.contact-context strong { color:var(--gold-bright); font-size:9px; text-transform:uppercase; letter-spacing:.1em; text-align:right; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:25px; }
.contact-form label { display:grid; gap:9px; }
.contact-form label > span { color:#cfc8bd; font-size:8.5px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; }
.contact-form input,.contact-form textarea { width:100%; border:1px solid rgba(255,255,255,.17); border-radius:0; outline:0; background:rgba(255,255,255,.035); color:var(--ivory); font-family:var(--sans); font-size:13px; font-weight:500; line-height:1.5; transition:border-color .25s ease,box-shadow .25s ease,background .25s ease; }
.contact-form input { height:54px; padding:0 16px; }
.contact-form textarea { min-height:118px; resize:vertical; padding:14px 16px; }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:#777169; opacity:1; }
.contact-form input:focus,.contact-form textarea:focus { border-color:rgba(239,209,110,.72); background:rgba(239,209,110,.045); box-shadow:0 0 0 3px rgba(239,209,110,.07),0 0 30px rgba(200,155,69,.08); }
.contact-message { grid-column:1 / -1; }
.contact-submit { grid-column:1 / -1; min-height:58px; display:flex; align-items:center; justify-content:center; gap:11px; overflow:hidden; border:0; background:linear-gradient(110deg,#1ebc59,#25d366 46%,#57e589); color:#07150b; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.13em; cursor:pointer; box-shadow:0 16px 45px rgba(37,211,102,.14); transition:transform .25s ease,box-shadow .25s ease; }
.contact-submit:hover { transform:translateY(-3px); box-shadow:0 20px 52px rgba(37,211,102,.24); }
.contact-submit .whatsapp-icon { width:18px; height:18px; padding:0; background:transparent; box-shadow:none; }
.contact-submit > span { font-size:15px; }
.contact-foot { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:16px; }
.contact-foot small { color:#777169; font-size:8px; font-weight:600; }
.contact-foot a { display:inline-flex; align-items:center; color:#cfc8bd; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.contact-foot .whatsapp-icon { width:13px; height:13px; }

@media (max-width:720px) {
  .section-number,.eyebrow { font-size:8.5px; }
  .contact-modal { place-items:end center; padding:0; }
  .contact-panel { width:100%; max-height:94svh; padding:32px 20px 24px; border-inline:0; border-bottom:0; transform:translateY(100%); }
  .contact-heading { padding-right:36px; }
  .contact-heading h2 { font-size:clamp(47px,14vw,64px); }
  .contact-form { grid-template-columns:1fr; gap:16px; }
  .contact-message,.contact-submit { grid-column:1; }
  .contact-foot { align-items:flex-start; flex-direction:column; gap:12px; }
  .whatsapp-float { right:12px; bottom:12px; }
}

@media (prefers-reduced-motion:reduce) {
  .motion-stage > .stage-light::before,.motion-stage > .stage-light::after,.contact-panel::before,.contact-aurora { animation:none!important; }
  .contact-modal,.contact-panel { transition:none!important; }
}

/* Hostinger fail-safe button and branded background atmosphere */
.whatsapp-float {
  position:fixed!important; z-index:500!important; right:clamp(14px,2vw,28px)!important; bottom:max(16px,env(safe-area-inset-bottom))!important;
  min-height:58px!important; display:inline-flex!important; align-items:center!important; justify-content:center!important; gap:11px!important;
  padding:0 22px!important; border:1px solid rgba(255,255,255,.32)!important; border-radius:999px!important;
  background:linear-gradient(135deg,#1fbd5b,#25d366 52%,#55e78b)!important; color:#07150b!important;
  box-shadow:0 18px 50px rgba(0,0,0,.36),0 0 0 0 rgba(37,211,102,.34)!important;
  visibility:visible!important; opacity:1!important; font-size:9px!important; font-weight:800!important; letter-spacing:.1em!important;
  animation:whatsappPresence 3.2s ease-in-out infinite; isolation:isolate;
}
.whatsapp-float::before { content:''; position:absolute; z-index:-1; inset:-8px; border:1px solid rgba(37,211,102,.28); border-radius:999px; opacity:0; animation:whatsappRing 3.2s ease-out infinite; }
.whatsapp-float .whatsapp-icon { width:20px!important; height:20px!important; padding:0!important; background:transparent!important; color:white!important; box-shadow:none!important; }
.whatsapp-float .whatsapp-label { display:inline!important; font-size:inherit!important; }
@keyframes whatsappPresence { 0%,100% { transform:translateY(0); box-shadow:0 18px 50px rgba(0,0,0,.36),0 0 0 0 rgba(37,211,102,.28); } 50% { transform:translateY(-4px); box-shadow:0 22px 58px rgba(0,0,0,.4),0 0 30px 5px rgba(37,211,102,.14); } }
@keyframes whatsappRing { 0% { transform:scale(.92); opacity:0; } 28% { opacity:.9; } 72%,100% { transform:scale(1.12); opacity:0; } }

.services,.process,.final-cta { position:relative; overflow:hidden; }
.services { background:radial-gradient(circle at 87% 22%,rgba(200,155,69,.075),transparent 26%),repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),rgba(239,209,110,.025) 20%),var(--ink); }
.services::before,.process::after,.final-cta::before { content:''; position:absolute; z-index:0; width:clamp(320px,35vw,640px); aspect-ratio:1; background:url('./favicon.png') center/contain no-repeat; opacity:.04; filter:saturate(.8) contrast(1.08); pointer-events:none; animation:identityFloat 15s ease-in-out infinite alternate; }
.services::before { top:15%; right:-10%; }
.services > .service { position:relative; z-index:1; }
.process { background:radial-gradient(circle at 12% 70%,rgba(200,155,69,.1),transparent 22%),radial-gradient(circle at 86% 15%,rgba(239,209,110,.055),transparent 24%),repeating-linear-gradient(135deg,transparent 0,transparent 84px,rgba(239,209,110,.022) 85px),#090908; }
.process::before { content:''; position:absolute; z-index:0; left:-13vw; top:8%; width:42vw; min-width:380px; aspect-ratio:1; border:1px solid rgba(200,155,69,.1); border-radius:50%; box-shadow:0 0 0 70px rgba(200,155,69,.025),0 0 0 145px rgba(200,155,69,.015); pointer-events:none; }
.process::after { left:2%; bottom:-26%; opacity:.035; animation-delay:-6s; }
.process-head,.process .steps { z-index:1; }
.final-cta { background:radial-gradient(circle at 76% 30%,rgba(200,155,69,.12),transparent 30%),repeating-linear-gradient(0deg,transparent 0,transparent 110px,rgba(239,209,110,.022) 111px),#11100e; }
.final-cta::before { right:-8%; bottom:-28%; opacity:.045; animation-delay:-3s; }
.final-image,.final-copy { position:relative; z-index:1; }
.service-dark .service-copy { background:radial-gradient(circle at 88% 15%,rgba(200,155,69,.1),transparent 24%),repeating-linear-gradient(135deg,transparent 0,transparent 92px,rgba(255,255,255,.018) 93px),#11100e; }
@keyframes identityFloat { from { transform:translate3d(0,-14px,0) rotate(-2deg) scale(.96); } to { transform:translate3d(-24px,22px,0) rotate(2deg) scale(1.04); } }

@media (max-width:720px) {
  .whatsapp-float { min-width:58px!important; min-height:58px!important; padding:0 18px!important; right:12px!important; }
  .whatsapp-float .whatsapp-label { font-size:8px!important; }
  .services::before,.process::after,.final-cta::before { width:88vw; opacity:.03; }
  .process::before { left:-65vw; width:130vw; }
}

@media (max-width:420px) {
  .whatsapp-float { width:58px!important; padding:0!important; }
  .whatsapp-float .whatsapp-label { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
}

@media (prefers-reduced-motion:reduce) {
  .whatsapp-float,.whatsapp-float::before,.services::before,.process::after,.final-cta::before { animation:none!important; }
}
