/* Maisone v3 shared design system, link this from every page */
:root { --cream:#f6efe3; --cream-2:#ebe0cc; --ink:#15110d; --fuchsia:#e54a7c; --fuchsia-deep:#b8235a; --fuchsia-soft:#fbdce5; --oxblood:#5b1f2a; --muted:#7a6f5f; --hair:#d8cab2; }
* { box-sizing:border-box; margin:0; padding:0; }
html, body { background:var(--cream); color:var(--ink); font-family:'Cormorant Garamond',serif; font-weight:400; line-height:1.45; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body { position:relative; }
body::before { content:""; position:fixed; inset:-30%; pointer-events:none; z-index:-1; background:radial-gradient(ellipse 60% 40% at 90% -5%, rgba(229,74,124,0.42) 0%, transparent 55%), radial-gradient(ellipse 55% 45% at 5% 105%, rgba(91,31,42,0.22) 0%, transparent 60%), radial-gradient(ellipse 45% 35% at 60% 50%, rgba(232,185,163,0.28) 0%, transparent 65%); animation:drift 12s ease-in-out infinite alternate; will-change:transform; }
@keyframes drift { 0%{transform:translate(-8%,-6%) scale(1) rotate(0)} 50%{transform:translate(10%,7%) scale(1.18) rotate(4deg)} 100%{transform:translate(-5%,10%) scale(1.10) rotate(-3deg)} }
body::after { content:""; position:fixed; inset:-40%; pointer-events:none; z-index:-1; background:radial-gradient(circle 600px at 25% 75%, rgba(229,74,124,0.30) 0%, transparent 60%), radial-gradient(circle 500px at 75% 25%, rgba(232,185,163,0.34) 0%, transparent 60%); animation:drift2 15s ease-in-out infinite alternate; will-change:transform; }
@keyframes drift2 { 0%{transform:translate(0,0) scale(0.9)} 50%{transform:translate(12%,-8%) scale(1.22)} 100%{transform:translate(-10%,5%) scale(1)} }
.blob-float { position:fixed; width:480px; height:480px; border-radius:50%; pointer-events:none; z-index:0; filter:blur(80px); opacity:0.40; }
.blob-float--a { top:12%; left:-180px; background:radial-gradient(circle, rgba(229,74,124,0.7), transparent 70%); animation:blobA 18s ease-in-out infinite; }
.blob-float--b { bottom:8%; right:-220px; background:radial-gradient(circle, rgba(232,185,163,0.7), transparent 70%); animation:blobB 20s ease-in-out infinite; }
.blob-float--c { top:55%; left:40%; width:360px; height:360px; background:radial-gradient(circle, rgba(184,35,90,0.4), transparent 70%); animation:blobC 16s ease-in-out infinite; }
@keyframes blobA { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(220px,180px) scale(1.3)} 66%{transform:translate(120px,420px) scale(0.9)} }
@keyframes blobB { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-320px,-220px) scale(1.4)} }
@keyframes blobC { 0%,100%{transform:translate(0,0) scale(1)} 25%{transform:translate(-220px,-120px) scale(1.2)} 50%{transform:translate(160px,220px) scale(0.85)} 75%{transform:translate(-110px,310px) scale(1.1)} }
a { color:inherit; text-decoration:none; transition:opacity .2s, color .2s; }
a:hover { color:var(--fuchsia-deep); }
.label { font-family:'Inter',sans-serif; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.emph { color:var(--fuchsia-deep); font-style:italic; font-weight:500; }
.emph--mark { background:linear-gradient(180deg, transparent 60%, rgba(229,74,124,0.28) 60%, rgba(229,74,124,0.28) 92%, transparent 92%); padding:0 2px; font-style:italic; color:var(--ink); }
.header-stack { position:sticky; top:0; z-index:10; background:rgba(246,239,227,0.82); backdrop-filter:blur(20px) saturate(140%); -webkit-backdrop-filter:blur(20px) saturate(140%); border-bottom:1px solid var(--hair); }
.header { display:flex; justify-content:space-between; align-items:center; padding:24px 48px; }
.header__brand { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; font-style:italic; color:var(--ink); line-height:1; }
.header__brand::after { content:"."; color:var(--fuchsia-deep); font-style:normal; }
.header__nav { display:flex; gap:36px; align-items:center; }
.header__nav a { font-family:'Inter',sans-serif; font-size:13px; letter-spacing:0.06em; font-weight:500; }
.header__nav a.active { color:var(--fuchsia-deep); }
.header__cta { background:var(--fuchsia-deep); color:var(--cream); padding:14px 26px; border-radius:999px; font-family:'Inter',sans-serif; font-size:13px; font-weight:600; box-shadow:0 6px 18px rgba(184,35,90,0.28); transition:transform 0.2s, box-shadow 0.25s; }
.header__cta:hover { transform:translateY(-1px); box-shadow:0 10px 24px rgba(184,35,90,0.38); }
.press-strip-top { display:flex; align-items:center; justify-content:center; gap:36px; padding:10px 48px 14px; border-top:1px solid rgba(216,202,178,0.45); }
.press-strip-top__label { font-family:'Inter',sans-serif; font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.press-strip-top__logo { height:16px; opacity:0.65; filter:brightness(0.2); }
.press-strip-top__logo--ap { height:22px; }
.press-strip-top__divider { width:1px; height:14px; background:var(--hair); }
.chat-widget { position: fixed; bottom: 24px; right: 24px; z-index: 100; cursor: pointer; transition: transform 0.3s cubic-bezier(0.2,0.8,0.2,1); display:block; }
.chat-widget:hover { transform: translateY(-4px); }
.chat-widget__card { position: relative; display: flex; align-items: center; gap: 14px; background: linear-gradient(135deg, rgba(15,17,13,0.88) 0%, rgba(40,20,32,0.88) 100%); backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%); border: 1px solid rgba(255,255,255,0.14); border-radius: 22px; padding: 14px 22px 14px 14px; color: var(--cream); overflow: hidden; box-shadow: 0 22px 50px rgba(15, 17, 13, 0.42), 0 0 0 1px rgba(229,74,124,0.18), inset 1px 1px 1px rgba(255,255,255,0.14); }
.chat-widget__card::after { content:""; position:absolute; top:-40px; right:-40px; width:120px; height:120px; border-radius:50%; background:radial-gradient(circle, rgba(229,74,124,0.5), transparent 70%); filter:blur(20px); animation:cwGlow 6s ease-in-out infinite alternate; }
@keyframes cwGlow { 0%{transform:translate(0,0) scale(1); opacity:0.6} 100%{transform:translate(-30px,30px) scale(1.3); opacity:0.9} }
.chat-widget__avatar { width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg, var(--fuchsia-deep), var(--fuchsia)); display:flex; align-items:center; justify-content:center; color:var(--cream); font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:500; font-size:22px; box-shadow:0 6px 16px rgba(184,35,90,0.35), inset 1px 1px 1px rgba(255,255,255,0.25); position:relative; z-index:1; }
.chat-widget__avatar::after { content:""; position:absolute; bottom:1px; right:1px; width:10px; height:10px; border-radius:50%; background:var(--fuchsia); box-shadow:0 0 8px var(--fuchsia), 0 0 0 2px rgba(15,17,13,0.88); animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:1; transform:scale(1)} 50%{opacity:0.7; transform:scale(0.9)} }
.chat-widget__body { position:relative; z-index:1; }
.chat-widget__text { font-family:'Inter',sans-serif; font-size:13.5px; font-weight:600; letter-spacing:0.01em; line-height:1.2; }
.chat-widget__sub { font-family:'Inter',sans-serif; font-size:11px; color:rgba(246,239,227,0.62); font-weight:400; margin-top:2px; }
.whatsapp-widget { position: fixed; bottom: 96px; right: 24px; z-index: 100; cursor: pointer; transition: transform 0.3s cubic-bezier(0.2,0.8,0.2,1); display: block; }
.whatsapp-widget:hover { transform: translateY(-4px); color: var(--cream); }
.whatsapp-widget__card { position: relative; display: flex; align-items: center; gap: 14px; background: linear-gradient(135deg, #20bd5f 0%, #25d366 100%); border: 1px solid rgba(255,255,255,0.18); border-radius: 22px; padding: 12px 22px 12px 14px; color: #fff; box-shadow: 0 18px 40px rgba(37, 211, 102, 0.35), inset 1px 1px 1px rgba(255,255,255,0.20); }
.whatsapp-widget__icon { width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,0.18); display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 4px 10px rgba(0,0,0,0.15), inset 1px 1px 1px rgba(255,255,255,0.25); }
.whatsapp-widget__text { font-family:'Inter',sans-serif; font-size:13.5px; font-weight:600; letter-spacing:0.01em; line-height:1.2; }
.whatsapp-widget__sub { font-family:'Inter',sans-serif; font-size:11px; color:rgba(255,255,255,0.78); font-weight:400; margin-top:2px; }
@media (max-width: 900px) {
  .whatsapp-widget { bottom: 80px !important; right: 12px !important; }
  .whatsapp-widget__card { padding: 10px 16px 10px 10px !important; }
  .whatsapp-widget__icon { width: 32px !important; height: 32px !important; }
  .whatsapp-widget__icon svg { width: 18px !important; height: 18px !important; }
  .whatsapp-widget__text { font-size: 12px !important; }
  .whatsapp-widget__sub { font-size: 10px !important; }
}
.footer-wrap { position:relative; margin-top:60px; }
.footer-wrap::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0; background:radial-gradient(ellipse 60% 60% at 90% 100%, rgba(229,74,124,0.14) 0%, transparent 70%), radial-gradient(ellipse 50% 50% at 10% 0%, rgba(232,185,163,0.15) 0%, transparent 70%); }
.footer { padding:80px 48px 48px; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:56px; border-top:1px solid var(--hair); position:relative; z-index:1; }
.footer__brand { font-family:'Cormorant Garamond',serif; font-size:38px; font-style:italic; font-weight:600; margin-bottom:16px; }
.footer__brand::after { content:"."; color:var(--fuchsia-deep); font-style:normal; }
.footer__tag { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:16px; color:var(--muted); line-height:1.55; margin-bottom:24px; max-width:280px; }
.footer__addr { font-family:'Inter',sans-serif; font-size:13px; color:var(--muted); line-height:1.7; }
.footer__col h4 { font-family:'Inter',sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:0.18em; color:var(--muted); font-weight:600; margin-bottom:18px; }
.footer__col ul { list-style:none; }
.footer__col li { font-family:'Inter',sans-serif; font-size:13.5px; margin-bottom:12px; }
.footer__bottom { padding:28px 48px 36px; display:flex; justify-content:space-between; border-top:1px solid var(--hair); position:relative; z-index:1; }
.footer__bottom p { font-family:'Inter',sans-serif; font-size:12px; color:var(--muted); }
.btn--cream { background:var(--cream); color:var(--ink); padding:18px 32px; border-radius:999px; font-family:'Inter',sans-serif; font-size:14px; font-weight:600; display:inline-block; box-shadow:0 10px 28px rgba(15,17,13,0.22); transition:transform 0.2s, box-shadow 0.25s; cursor:pointer; }
.btn--cream:hover { transform:translateY(-2px); box-shadow:0 16px 36px rgba(15,17,13,0.3); }
.bigcta { padding:80px 24px 120px; }
.bigcta__inner { background:linear-gradient(135deg, rgba(91,31,42,0.95) 0%, rgba(184,35,90,0.92) 50%, rgba(229,74,124,0.95) 100%); border-radius:36px; padding:96px 64px; position:relative; overflow:hidden; text-align:center; }
.bigcta__inner::before { content:""; position:absolute; top:-120px; left:-120px; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle, rgba(229,74,124,0.6), transparent 70%); filter:blur(40px); animation:ctaA 9s ease-in-out infinite alternate; }
.bigcta__inner::after { content:""; position:absolute; bottom:-140px; right:-140px; width:460px; height:460px; border-radius:50%; background:radial-gradient(circle, rgba(232,185,163,0.4), transparent 70%); filter:blur(50px); animation:ctaB 11s ease-in-out infinite alternate; }
@keyframes ctaA { 0%{transform:translate(0,0)} 100%{transform:translate(80px,60px)} }
@keyframes ctaB { 0%{transform:translate(0,0)} 100%{transform:translate(-100px,-40px)} }
.bigcta h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(48px, 6vw, 96px); font-weight:500; line-height:1.0; letter-spacing:-0.022em; color:var(--cream); margin-bottom:28px; max-width:1100px; margin-left:auto; margin-right:auto; position:relative; }
.bigcta h2 em { color:var(--fuchsia-soft); font-style:italic; }
.bigcta p { font-family:'Inter',sans-serif; font-size:17px; color:rgba(246,239,227,0.85); max-width:540px; margin:0 auto 40px; position:relative; }
@media (max-width: 900px) {
  .header { padding: 16px 20px !important; gap: 12px; flex-wrap: wrap; }
  .header__nav { display: none !important; }
  .header__brand { font-size: 22px !important; }
  .header__cta { padding: 10px 16px !important; font-size: 12px !important; }
  .press-strip-top { padding: 8px 16px 12px !important; gap: 14px !important; flex-wrap: wrap; justify-content: center; }
  .press-strip-top__label { font-size: 9.5px !important; letter-spacing: 0.14em !important; }
  .press-strip-top__logo { height: 13px !important; }
  .press-strip-top__logo--ap { height: 18px !important; }
  .press-strip-top__divider { display: none; }
  .hero, .svc-hero, .hero-cat { padding: 36px 20px !important; }
  .hero__grid, .svc-hero__grid, .hero-cat__grid, .hero__bar, .contact__grid, .construction__grid, .included__grid, .featured__card, .story__body, .commitments__grid, .headline-band__inner, .quote-form__grid, .statement-band__grid { grid-template-columns: 1fr !important; gap: 24px !important; }
  .hero-cat__copy, .svc-hero__copy, .featured__body { padding: 0 !important; }
  .hero__title, .hero-cat__title, .svc-hero__title, .couture-hero__title, .featured__title, .phase__title, .section-head h2, .commitments__head h2, .bigcta h2, .pullquote__text, .statement-band__title, .hero__main h1, .hero__main .hero__title { font-size: clamp(40px, 11vw, 56px) !important; line-height: 1 !important; letter-spacing: -0.025em !important; }
  .couture-hero__img { aspect-ratio: 3/4 !important; }
  .couture-hero__overlay { bottom: 32px !important; padding: 0 24px !important; }
  .couture-hero__title { font-size: clamp(48px, 13vw, 64px) !important; }
  .couture-hero__sub { font-size: 16px !important; }
  .hero__sub, .hero-cat__sub, .svc-hero__sub { font-size: 15px !important; }
  .hero-cat__pills { gap: 8px; }
  .hero-cat__pill { font-size: 11px !important; padding: 8px 14px !important; }
  .hero__pin { font-size: 11.5px !important; padding: 10px 18px !important; }
  .hero__arrow { width: 24px !important; }
  .hero__timeline { padding: 0 0 40px !important; gap: 8px; }
  .hero__main { padding: 36px 24px !important; min-height: 400px !important; border-radius: 24px !important; }
  .hero__photo, .hero__visual, .hero-cat__media, .svc-hero__media, .featured__media, .cover__image, .phase__media { aspect-ratio: 4/5 !important; min-height: 320px !important; border-radius: 24px !important; }
  .row-stats, .stats-band__grid, .numbers__grid, .stats-grid, .spec-band__grid, .deliverables__list { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
  .stat, .num-card, .spec { padding: 24px 18px !important; }
  .stat__value, .num-card__value, .spec__value { font-size: 44px !important; }
  .stat__value span, .num-card__value em, .spec__value em { font-size: 26px !important; }
  .bento, .phases-grid, .cats__grid, .subcats__grid, .related__grid, .other__grid, .services { grid-template-columns: 1fr !important; gap: 16px !important; padding: 0 20px 60px !important; }
  .tile, .phase-card, .cat-tile, .subcat-card, .rel-tile, .other-card, .commitment, .belief, .svc-card, .gallery__grid > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
  .span-2, .span-3, .span-4, .f-col-4, .f-col-5, .f-col-6, .f-col-7, .f-col-8, .row-2, .f-row-3, .f-row-4, .f-row-5, .row-3, .g-c4, .g-c5, .g-c6, .g-c7, .g-c8, .g-r2, .g-r3, .g-r4, .cat-tile--featured, .cat-tile--span-2 { grid-column: 1 / -1 !important; grid-row: auto !important; }
  .phase { grid-template-columns: 1fr !important; gap: 24px !important; padding: 40px 0 !important; }
  .phase__detail-grid { grid-template-columns: 1fr 1fr !important; }
  .movement { grid-template-columns: 1fr !important; gap: 16px !important; padding: 32px 0 !important; }
  .movement__roman { font-size: 36px !important; }
  .construction__main, .included__main, .form-card, .glass-card, .details, .pullquote__inner, .bigcta__inner, .cta-band__inner, .statement-band__inner, .numbers, .commitment, .belief, .svc-card, .tile, .phase-card, .subcat-card, .cat-tile, .quote-form__inner, .proc-strip__inner { padding: 32px 24px !important; border-radius: 24px !important; }
  .proc-strip__steps, .proc-strip__head { grid-template-columns: 1fr !important; gap: 12px !important; flex-direction: column !important; align-items: flex-start !important; }
  .gallery__grid { grid-template-columns: 1fr !important; grid-auto-rows: 280px !important; }
  .folio { grid-template-columns: 1fr !important; grid-auto-rows: 280px !important; gap: 16px !important; padding: 0 20px 60px !important; }
  .footer { grid-template-columns: 1fr !important; gap: 32px !important; padding: 48px 24px !important; }
  .footer__bottom { padding: 20px 24px 32px !important; flex-direction: column; gap: 12px; }
  .featured { padding: 24px 20px 60px !important; }
  .construction, .included, .subcats, .related, .cats, .stats-band, .commitments, .numbers, .proc-strip, .quote-form, .deliverables, .faq, .gallery, .pullquote, .story, .intro, .cover, .headline-band, .cat-table, .other { padding: 24px 20px 60px !important; }
  .section-head, .folio-head, .beliefs__head, .faq__head, .commitments__head, .other__head { padding: 32px 20px 16px !important; flex-direction: column; align-items: flex-start !important; gap: 12px; }
  .cat-table__inner { padding: 4px !important; }
  .cat-row { grid-template-columns: 1fr !important; padding: 20px 20px !important; gap: 8px !important; border-radius: 16px !important; }
  .cat-row--head { display: none !important; }
  .cat-cta { text-align: left !important; }
  .bigcta { padding: 24px 20px 60px !important; }
  .blob-float { width: 280px !important; height: 280px !important; opacity: 0.28 !important; }
  .chat-widget { bottom: 12px !important; right: 12px !important; }
  .chat-widget__card { padding: 10px 16px 10px 10px !important; }
  .chat-widget__avatar { width: 32px !important; height: 32px !important; font-size: 18px !important; }
  .chat-widget__text { font-size: 12px !important; }
  .chat-widget__sub { font-size: 10px !important; }
  .footer__signup { grid-column: 1 / -1; }
  .footer__signup-form { flex-direction: column; gap: 8px; }
  .construction__main h3, .included__main h3 { font-size: 36px !important; }
  .svc-card__title { font-size: 32px !important; }
  .construction__main p, .included__main p { font-size: 14.5px !important; }
  .nav-dropdown { display: none !important; }
  .hero__pullouts { display: none !important; }
  .field-row { grid-template-columns: 1fr !important; }
}
