/* Editorial composition. Shared brand tokens live in style.css. */
:root { --radius: 16px; --ease: cubic-bezier(.22,.61,.36,1); }
body { font-size: 15px; }
.wrap { width: min(1320px, calc(100% - 80px)); }
.header { background: #ffffffed; box-shadow: none; transition: background .3s, box-shadow .3s; backdrop-filter: blur(14px); }
.header.is-scrolled { background: #fff; box-shadow: 0 6px 25px #0b376f12; }
.header-inner { height: 88px; }
.header nav a { position: relative; }
.header nav .menu-contact { display: none; }
.header nav a[aria-current] { color: var(--pink-dark); }
.header nav a[aria-current]::after { content: ''; position: absolute; bottom: -8px; left: 0; width: 20px; height: 2px; background: currentColor; }
.button { border-radius: 7px; min-height: 48px; background: #c31962; box-shadow: none; transition: transform .3s var(--ease), background .3s, box-shadow .3s; }
.button:hover { background: #a91453; box-shadow: 0 10px 25px #c319621c; }
.button span { transition: transform .3s; }
.button:hover span { transform: translate(3px,-3px); }
.hero { padding: 64px 0 92px; background: linear-gradient(110deg,#fff 45%,#edf4fc 45%); }
.hero-grid { grid-template-columns: .95fr 1.15fr; gap: 64px; }
h1 { font-size: clamp(44px,4.5vw,70px); line-height: 1.08; letter-spacing: -.055em; font-weight: 600; }
h1 .title-accent { color: var(--blue); }
.hero-price { margin-top: 28px; color: var(--pink-dark); font-size: clamp(19px,1.65vw,25px); }
.hero .lead { font-size: 14px; margin-bottom: 26px; max-width: 470px; }
.hero .eyebrow { font-size: 10px; letter-spacing: 1.8px; }
.hero-visual { margin: 0 0 24px; }
.photo-shell { height: 590px; border: 0; border-radius: 120px 16px 16px 16px; box-shadow: none; }
.photo-shell .hero-slide { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity .6s var(--ease); object-position: 52% center; }
.photo-shell .hero-slide.active { opacity: 1; }
.photo-shell .hero-slide:nth-child(2) { object-position: 50% 55%; }
.photo-caption { padding: 60px 26px 24px; background: linear-gradient(transparent,#061a35ed); font-size: 10px; }
.float-top { top: 58px; left: -27px; padding: 18px; border: 1px solid var(--border); }
.float-bottom { bottom: 90px; right: -20px; padding: 18px; }
.price-bubble { top: -22px; right: 20px; width: 144px; height: 144px; background: var(--dark); border-color: #edf4fc; transform: rotate(5deg); }
.hero-visual>.handwritten { bottom: -69px; left: auto; right: 0; font-size: 28px; transform: rotate(-3deg); }
.slide-controls { position: absolute; bottom: -58px; display: flex; gap: 8px; align-items: center; }
.slide-controls button { background: transparent; border: 1px solid #a6bad4; color: var(--dark); border-radius: 50%; width: 44px; height: 44px; font-size: 12px; }
.slide-controls button[aria-pressed=true] { background: var(--blue); color: white; border-color: var(--blue); }
.slide-controls>span { font-size: 8px; letter-spacing: 1px; margin-left: 6px; }
.cta-microcopy { font-size: 10px; margin: 12px 0 0; max-width: 330px; }
.hero-foot { border-top: 1px solid var(--border); padding-top: 20px; margin-top: 25px; }
.ribbon { background: var(--dark); }
.ribbon-list { padding: 30px 0; }
.section { padding: 112px 0; }
h2 { font-size: clamp(32px,3.4vw,48px); line-height: 1.15; letter-spacing: -.045em; }
.eyebrow { font-size: 10px; letter-spacing: 1.7px; }
.fine { font-size: 12px; }
.split { gap: 88px; }
.editorial-photo { padding-right: 55px; }
.editorial-photo>img { height: 590px; border-radius: 16px 100px 16px 16px; object-position: center 60%; }
.image-note { left: 42px; right: 0; bottom: 30px; padding: 24px; border: 1px solid var(--border); border-radius: 10px; }
.mini-grid p,.card p,.model-copy p,.timeline p,.faq details p { font-size: 14px; }
.mini-grid strong { font-size: 14px; }
.section-heading { margin-bottom: 48px; }
.section-heading>p { font-size: 14px; }
.benefits { gap: 0; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.card { border: 0; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); border-radius: 0; padding: 36px; background: #ffffff99; }
.card:hover { z-index: 1; background: white; }
.card-number { color: #61758f; }
.section-action { margin-top: 32px; }
.model-tabs { margin: 40px 0 25px; }
.model-tabs button { min-height: 48px; border-radius: 6px; }
.model-panel { border-radius: 16px; background: #f5f9fe; }
.model-picture { min-height: 470px; }
.model-picture img { object-position: 50% center; transition: object-position .6s; }
.model-copy { padding: 46px; }
.model-copy ul { font-size: 14px; }
.model-copy .fine { font-size: 12px; }
.investment { background: var(--dark); position: relative; overflow: hidden; }
.investment::before { content: ''; position: absolute; width: 600px; height: 600px; border: 1px solid #ffffff0d; border-radius: 50%; left: -300px; top: -200px; pointer-events: none; }
.investment .split { position: relative; }
.investment h2 { font-size: clamp(38px,4.2vw,62px); }
.investment-details ul { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; font-size: 12px; }
.investment-details li { border: 1px solid #ffffff30; border-radius: 6px; padding: 12px; }
.investment-card { border-radius: 16px; padding: 52px 36px; }
.big-price { font-size: 27px; }
.big-price strong { font-size: clamp(48px,4.9vw,74px); }
.investment-card .fine { font-size: 12px; }
.gallery { grid-template-columns: 1.35fr .8fr .8fr; grid-template-rows: 460px; gap: 20px; }
.gallery-main { grid-row: auto; }
.gallery-item { border-radius: 12px; }
.gallery-item:nth-child(2) { margin-top: 60px; }
.gallery-item:nth-child(3) { margin-bottom: 60px; }
.gallery-item>span { font-size: 12px; background: linear-gradient(transparent,#061a35f5); }
.gallery-item:hover img { transform: scale(1.05); }
.contact { background: linear-gradient(90deg,#fff 50%,#f5f9fe 50%); }
.lead-form { background: white; padding: 36px; border-radius: 16px; }
.form-intro { color: var(--dark); font-size: 21px; font-weight: 600; margin-bottom: 4px; }
.lead-form label { font-size: 13px; }
input,select { min-height: 48px; font-size: 16px; border-radius: 6px; }
.lead-form .consent { font-size: 12px; }
.consent input { min-height: 20px; width: 20px; }
.field-error { display: block; color: #a91440; font-size: 12px; margin-top: 5px; }
[aria-invalid=true] { border-color: #b7194a; background: #fff8fa; }
#form-status { border-left: 3px solid var(--blue); }
.faq summary { font-size: 15px; min-height: 32px; }
.lightbox-controls { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 16px; }
.lightbox-controls button { width: 48px; height: 44px; border: 1px solid var(--border); background: var(--pale); color: var(--dark); border-radius: 6px; font-size: 21px; }
.dialog-close { width: 44px; height: 44px; z-index: 2; }
dialog img { max-height: 65vh; }
dialog[open] { animation: appear .25s var(--ease); }
.mobile-cta { display: none; }
@media(max-width:1150px) {
  .wrap { width: calc(100% - 48px); }
  .hero-grid { gap: 35px; }
  .photo-shell { height: 520px; }
  .split { gap: 40px; }
  .slide-controls>span,.hero-visual>.handwritten { display: none; }
  .editorial-photo { padding-right: 25px; }
  .model-copy { padding: 30px; }
}
@media(max-width:900px) {
  .header nav .menu-contact { display: block; color: var(--pink-dark); font-weight: 600; }
  .header-inner { height: 80px; }
  .header nav { display: flex; visibility: hidden; opacity: 0; transform: translateY(-10px); pointer-events: none; flex-direction: column; transition: opacity .25s,transform .25s,visibility .25s; max-height: calc(100dvh - 90px); overflow: auto; }
  .header nav.open { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
  .hero-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  h1 { font-size: 46px; }
  .hero .eyebrow { font-size: 8px; }
  .hero .lead { font-size: 13px; }
  .photo-shell { height: 510px; border-radius: 80px 12px 12px; }
  .float-top { left: -12px; padding: 10px; top: 120px; }
  .float-bottom { right: -10px; padding: 10px; }
  .price-bubble { width: 120px; height: 120px; right: 8px; }
  .section { padding: 80px 0; }
  .editorial-photo>img { height: 540px; }
  .image-note { left: 10px; padding: 15px; }
  .card { padding: 27px; }
  .gallery { grid-template-columns: 1.2fr 1fr; grid-template-rows: 230px 230px; }
  .gallery-main { grid-row: span 2; }
  .gallery-item:nth-child(n) { margin: 0; }
  .investment-card { padding: 32px 22px; }
  .big-price strong { font-size: 48px; }
  .lead-form { padding: 25px; }
  .form-row { grid-template-columns: 1fr; }
}
@media(max-width:620px) {
  .wrap { width: calc(100% - 40px); }
  html { scroll-padding-top: 96px; }
  .hero { padding: 36px 0 76px; background: linear-gradient(#fff 45%,#edf4fc); }
  .hero-grid { grid-template-columns: 1fr; gap: 20px; }
  h1 { font-size: clamp(42px,11.7vw,60px); }
  .hero .eyebrow { letter-spacing: 1px; }
  .hero-price { font-size: 20px; margin-top: 20px; }
  .hero .lead { font-size: 14px; }
  .hero .button { width: 100%; font-size: 13px; }
  .hero-foot { margin-top: 20px; }
  .hero-visual { margin: 18px 0 20px; }
  .photo-shell { height: 390px; border-radius: 70px 12px 12px; }
  .float-top { top: 75px; left: -7px; }
  .float-bottom { bottom: 65px; right: -6px; }
  .photo-caption { font-size: 8px; padding: 45px 16px 18px; }
  .price-bubble { top: -20px; }
  .section { padding: 64px 0; }
  .split { gap: 32px; }
  .editorial-photo { padding-right: 24px; }
  .editorial-photo>img { height: 440px; }
  .image-note { left: 24px; }
  .benefits { grid-template-columns: 1fr; }
  .card { padding: 28px; }
  .card h3 { font-size: 19px; margin-top: 20px; }
  .card p { font-size: 14px; }
  .section-heading { margin-bottom: 30px; }
  .model-tabs button { font-size: 11px; padding: 12px 6px; }
  .model-picture { min-height: 290px; }
  .model-copy { padding: 25px; }
  .investment h2 { font-size: 43px; }
  .big-price strong { font-size: 56px; }
  .investment-details ul { font-size: 11px; }
  .gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 300px 260px; gap: 12px; }
  .gallery-main { grid-row: auto; grid-column: span 2; }
  .gallery-item>span { font-size: 11px; padding: 40px 12px 14px; }
  .contact { background: #f5f9fe; }
  .lead-form { padding: 24px 20px; }
  .notice { font-size: 12px; }
  .mobile-cta { display: flex; position: fixed; z-index: 19; bottom: max(12px,env(safe-area-inset-bottom)); left: 20px; right: 20px; box-shadow: 0 6px 24px #061a3540; }
  .mobile-cta[hidden] { display: none; }
  footer { padding-bottom: 100px; }
  dialog { padding: 52px 16px 20px; }
}
/* Cinematic upgrade: masks are visible at rest; JS adds transient animations only. */
.word-mask { display: inline-block; overflow: clip; vertical-align: top; padding-bottom: .12em; margin-bottom: -.12em; }
.motion-word { display: inline-block; }
.line-mask { display: block; overflow: clip; padding-bottom: .12em; margin-bottom: -.12em; }
.motion-line { display: block; }
h1 .word-mask,h1 .motion-word,h1 .line-mask,h1 .motion-line { color: inherit; }
h1 .title-accent { color: var(--blue); }
h2 em { background: linear-gradient(#f52c8226,#f52c8226) left 95% / 0% 8px no-repeat; transition: background-size .85s var(--ease) .25s; }
h2 em.highlight-revealed { background-size: 100% 8px; }
.reading-progress { position: fixed; top: 0; left: 0; width: 100%; height: 3px; background: var(--pink-dark); z-index: 100; transform: scaleX(0); transform-origin: left; pointer-events: none; }
.photo-shell .hero-slide { transition: opacity .9s var(--ease); object-position: center; }
.has-js .hero-slide.active { animation: ken-burns 6s ease-out both; animation-play-state: paused; }
.has-js .slider-running .hero-slide.active { animation-play-state: running; }
@keyframes ken-burns { from { transform: scale(1.06); } to { transform: scale(1); } }
.slide-controls { display: none; }
.has-js .slide-controls { display: flex; }
.slide-controls .slide-play { border-radius: 22px; width: auto; padding: 0 16px; font-size: 11px; }
.slide-play:disabled { opacity: .6; cursor: default; }
.hero-visual>.handwritten { bottom: -105px; }
.hero { padding-bottom: 116px; }
.media-frame { overflow: hidden; position: relative; isolation: isolate; }
.opportunity-frame { height: 590px; border-radius: 16px 100px 16px 16px; }
.opportunity-frame img { width: 100%; height: calc(100% + 24px); margin-top: -12px; object-fit: cover; object-position: 50% 48%; }
.editorial-photo { margin-bottom: 20px; }
.opportunity-detail { position: absolute; width: 34%; height: 180px; right: 0; bottom: 120px; border: 6px solid white; border-radius: 10px; overflow: hidden; box-shadow: 0 16px 35px #0b376f20; }
.opportunity-detail img { width: 100%; height: 100%; object-fit: cover; }
.image-note { bottom: -18px; }
.card { overflow: hidden; transition: transform .3s var(--ease),box-shadow .3s,background .3s; }
.card-photo { height: 170px; overflow: hidden; margin: -36px -36px 26px; }
.card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.card-number { top: 205px; }
.card .icon-box { transition: transform .3s var(--ease),background .3s; }
@media(hover:hover) {
  .card:hover { transform: translateY(-5px); box-shadow: 0 18px 45px #0b376f14; }
  .card:hover .icon-box { transform: translateY(-3px) rotate(-4deg); background: #e2efff; }
  .card:hover .card-photo img { transform: scale(1.035); }
  .gallery-item:hover img { transform: scale(1.03); }
  .gallery-item:hover b { transform: translate(3px,-3px); }
  .gallery-item:hover>span { padding-bottom: 27px; }
}
.text-link { position: relative; }
.text-link::after { content: ''; position: absolute; bottom: -1px; left: 0; height: 2px; width: 100%; background: var(--pink-dark); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.text-link:hover::after,.text-link:focus-visible::after { transform: scaleX(1); }
.model-picture { overflow: hidden; }
.model-picture>span { z-index: 2; }
.model-tabs button { transition: color .25s,background .25s,border-color .25s; }
.gallery { grid-template-columns: repeat(4,minmax(0,1fr)); grid-template-rows: 380px 300px; gap: 20px; }
.gallery .gallery-item { margin: 0; grid-row: auto; grid-column: auto; }
.gallery .gallery-item:first-child { grid-column: span 2; }
.gallery .gallery-item:last-child { grid-column: span 2; }
.gallery .gallery-item:first-child img { object-position: center 38%; }
.gallery-item>span { transition: padding .3s,background .3s; }
.gallery-item b { transition: transform .3s; }
.timeline { position: relative; }
.timeline::before { content: ''; height: 2px; background: var(--pink-dark); position: absolute; top: 0; left: 0; width: 100%; transform: scaleX(var(--timeline-progress,1)); transform-origin: left; }
.timeline article>span { transition: color .3s; }
.timeline article[data-motion-played] >span { color: var(--blue); }
.lead-form input,.lead-form select { transition: border-color .2s,box-shadow .2s,background .2s; }
.lead-form input:focus,.lead-form select:focus { border-color: var(--blue); box-shadow: 0 0 0 4px #124ea211; }
.button:disabled { opacity: .6; cursor: default; transform: none; }
.faq details p { animation: none; }
.faq summary::after { transition: transform .25s; }
.faq details[open] summary::after { content: '+'; transform: rotate(45deg); }
#lightbox { width: min(900px,92vw); }
#lightbox-image { width: 100%; height: 60vh; object-fit: contain; }
html:not(.has-js) .menu-toggle { display: none; }
@media(max-width:900px) {
  .opportunity-frame { height: 540px; }
  .opportunity-detail { height: 145px; bottom: 145px; }
  .card-photo { margin: -27px -27px 24px; }
  .card-number { top: 200px; }
  .gallery { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 320px 300px 300px; }
  .gallery .gallery-item:first-child,.gallery .gallery-item:last-child { grid-column: auto; }
  html:not(.has-js) .header-inner { height: auto; flex-wrap: wrap; padding-block: 10px; }
  html:not(.has-js) .header nav { position: static; display: flex; visibility: visible; opacity: 1; transform: none; pointer-events: auto; width: 100%; flex-direction: row; flex-wrap: wrap; padding: 0; box-shadow: none; }
}
@media(max-width:620px) {
  .hero { padding-bottom: 74px; }
  .opportunity-frame { height: 420px; }
  .opportunity-detail { height: 140px; width: 37%; bottom: 105px; }
  .card-photo { height: 180px; margin: -28px -28px 24px; }
  .card-number { top: 210px; }
  .gallery { grid-template-rows: 280px 230px 230px 260px; gap: 12px; }
  .gallery .gallery-item:first-child,.gallery .gallery-item:last-child { grid-column: span 2; }
  .timeline { grid-template-columns: 1fr; padding-left: 25px; gap: 32px; }
  .timeline article { border-top: 0; padding: 0; position: relative; }
  .timeline article::before { content: ''; position: absolute; left: -30px; top: 15px; width: 10px; height: 10px; border-radius: 50%; background: var(--pink-dark); border: 2px solid #f5f9fe; }
  .timeline::before { width: 2px; height: 100%; transform: scaleY(var(--timeline-progress,1)); transform-origin: top; }
  .timeline article>span { margin-bottom: 10px; }
  .timeline h3 { margin-bottom: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none!important; transition: none!important; }
}
