:root {
  --yellow: #F8D406;
  --pink: #E33D85;
  --blue: #0281AC;
  --ink: #16181E;
  --muted: #62656B;
  --paper: #FBFAF7;
  --white: #FFFFFF;
  --line: rgba(22, 24, 30, .12);
  --radius-lg: 44px;
  --radius-md: 26px;
  --shadow: 0 24px 70px rgba(25, 30, 38, .12);
  --container: min(1180px, calc(100vw - 48px));
  --ease: cubic-bezier(.2,.75,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 95px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
::selection { background: var(--yellow); color: var(--ink); }

.container { width: var(--container); margin: 0 auto; position: relative; }
.section { padding: 120px 0; position: relative; }
.hidden, .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: 14px; z-index: 9999; transform: translateY(-160%); background: var(--ink); color: white; padding: 10px 16px; border-radius: 999px; transition: .2s; }
.skip-link:focus { transform: translateY(0); }

.page-loader { position: fixed; inset: 0; background: var(--paper); z-index: 5000; display: grid; place-items: center; transition: opacity .55s ease, visibility .55s ease; }
.page-loader img { width: 150px; opacity: 0; animation: loaderMark 1.1s ease forwards; }
body.loaded .page-loader { opacity: 0; visibility: hidden; }
@keyframes loaderMark { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }

.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 16px 0; transition: background .3s ease, box-shadow .3s ease, padding .3s ease; }
.site-header.scrolled { background: rgba(251,250,247,.9); backdrop-filter: blur(16px); box-shadow: 0 8px 30px rgba(12,18,24,.07); padding: 9px 0; }
.nav-wrap { display: flex; align-items: center; gap: 34px; position:relative; z-index:2; }
.brand { width: 116px; flex: 0 0 auto; }
.brand img { width: 100%; max-height: 64px; object-fit: contain; }
.desktop-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.desktop-nav a { font-size: 14px; font-weight: 600; position: relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; bottom:-7px; width:100%; height:2px; background:var(--pink); transform:scaleX(0); transform-origin:right; transition:transform .25s ease; }
.desktop-nav a:hover::after { transform:scaleX(1); transform-origin:left; }
.header-cta { flex: 0 0 auto; }
.menu-toggle { display:none; margin-left:auto; width:46px; height:46px; border:0; border-radius:50%; background:var(--ink); cursor:pointer; position:relative; }
.menu-toggle span { position:absolute; left:13px; width:20px; height:2px; background:white; transition:.3s; }
.menu-toggle span:first-child { top:18px; }
.menu-toggle span:last-child { top:26px; }
.menu-toggle[aria-expanded="true"] span:first-child { top:22px; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { top:22px; transform:rotate(-45deg); }
.mobile-nav { display:none; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 24px; border-radius:999px; border:1px solid transparent; font-weight:700; font-size:14px; transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s ease; cursor:pointer; }
.btn:hover { transform: translateY(-3px); }
.btn-primary { background:var(--pink); color:white; box-shadow:0 12px 28px rgba(227,61,133,.25); }
.btn-primary:hover { box-shadow:0 16px 34px rgba(227,61,133,.35); }
.btn-small { min-height:44px; padding:0 18px; font-size:13px; }
.btn-light { background:white; color:var(--ink); }
.text-link { display:inline-flex; align-items:center; gap:10px; font-weight:700; font-size:14px; border-bottom:1px solid rgba(22,24,30,.3); padding-bottom:4px; }
.text-link span { transition:transform .25s; }
.text-link:hover span { transform: translate(3px,-2px); }
.text-link-blue { color:var(--blue); border-color:rgba(2,129,172,.3); }

.eyebrow { margin:0 0 18px; font-weight:800; text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--blue); }
.eyebrow.light { color:rgba(255,255,255,.76); }
h1,h2,h3,p { margin-top:0; }
h1,h2 { letter-spacing:-.045em; line-height:1.02; }
h1 { font-size:clamp(48px,6vw,86px); max-width:790px; margin-bottom:26px; }
h1 span, h2 span { color:var(--pink); }
h2 { font-size:clamp(40px,5vw,68px); margin-bottom:28px; }

.hero { min-height:100svh; padding:145px 0 72px; display:flex; align-items:center; position:relative; overflow:hidden; background:linear-gradient(135deg,#fffefc 0%,#fbfaf7 62%,#fff8fb 100%); }
.hero-grid { display:grid; grid-template-columns:1.03fr .97fr; gap:74px; align-items:center; }
.hero-copy { position:relative; z-index:3; }
.hero-copy h1 span { display:block; }
.hero-lead { max-width:660px; font-size:18px; color:var(--muted); margin-bottom:32px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.hero-notes { display:flex; gap:30px; margin-top:40px; padding-top:24px; border-top:1px solid var(--line); max-width:620px; }
.hero-notes span { display:flex; align-items:baseline; gap:6px; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.hero-notes b { color:var(--ink); font-size:19px; letter-spacing:-.02em; }
.hero-visual { position:relative; min-height:650px; display:grid; place-items:center; }
.hero-photo-frame { width:min(520px,100%); aspect-ratio:.78; border-radius:48% 52% 42% 58% / 44% 41% 59% 56%; overflow:hidden; box-shadow:var(--shadow); position:relative; z-index:2; background:white; }
.hero-photo-frame::after { content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 8px rgba(255,255,255,.26); border-radius:inherit; pointer-events:none; }
.hero-photo-frame img { width:100%; height:100%; object-fit:cover; object-position:center 50%; transform:scale(1.025); }
.hero-art { position:absolute; border-radius:999px; pointer-events:none; }
.hero-art-a { width:380px; height:380px; right:-150px; top:70px; background:var(--yellow); opacity:.78; }
.hero-art-b { width:320px; height:320px; left:-180px; bottom:-130px; background:var(--blue); opacity:.96; }
.doodle { position:absolute; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; }
.doodle path { stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 1.6s var(--ease); }
body.loaded .doodle path, .doodle.is-visible path { stroke-dashoffset:0; }
.doodle-hero { width:260px; right:2%; top:18%; color:var(--blue); opacity:.7; }
.floating-card { position:absolute; z-index:4; padding:16px 18px; border-radius:18px; box-shadow:0 18px 50px rgba(0,0,0,.13); display:flex; flex-direction:column; min-width:180px; backdrop-filter:blur(8px); }
.floating-card strong { font-size:15px; }
.floating-card small { font-size:11px; opacity:.75; }
.floating-card-pink { left:-16px; top:29%; color:white; background:rgba(227,61,133,.93); transform:rotate(-5deg); }
.floating-card-blue { right:-10px; bottom:19%; color:white; background:rgba(2,129,172,.93); transform:rotate(4deg); }
.card-dot { width:8px; height:8px; border-radius:50%; background:var(--yellow); margin-bottom:7px; }
.dot-cluster { position:absolute; width:120px; height:150px; background-image:radial-gradient(circle,var(--yellow) 0 4px,transparent 5px); background-size:24px 24px; transform:rotate(-20deg); right:0; top:8%; z-index:1; opacity:.9; }
.scroll-cue { position:absolute; left:50%; bottom:24px; transform:translateX(-50%); font-size:10px; text-transform:uppercase; letter-spacing:.15em; color:var(--muted); display:flex; align-items:center; gap:10px; }
.scroll-cue span { width:30px; height:1px; background:var(--ink); position:relative; overflow:hidden; }
.scroll-cue span::after { content:""; position:absolute; inset:0; background:var(--pink); animation:scrollPulse 1.8s infinite; }
@keyframes scrollPulse { from{transform:translateX(-100%)} to{transform:translateX(100%)} }

.ticker { overflow:hidden; background:var(--yellow); color:var(--ink); border-block:1px solid rgba(22,24,30,.1); }
.ticker-track { width:max-content; display:flex; align-items:center; gap:26px; padding:16px 0; animation:ticker 26s linear infinite; font-family:"Rubik One", "Montserrat", sans-serif; font-size:17px; text-transform:uppercase; letter-spacing:.04em; }
.ticker-track i { color:var(--pink); font-style:normal; }
@keyframes ticker { to { transform:translateX(-50%); } }
.ticker:hover .ticker-track { animation-play-state:paused; }

.about { overflow:hidden; }
.about-grid { display:grid; grid-template-columns:.93fr 1.07fr; gap:100px; align-items:center; }
.about-visual { position:relative; min-height:650px; }
.photo-organic { width:88%; height:610px; border-radius:46% 54% 56% 44% / 38% 46% 54% 62%; overflow:hidden; box-shadow:var(--shadow); position:relative; z-index:2; }
.photo-organic img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.about-visual::before { content:""; position:absolute; width:250px; height:250px; border-radius:50%; background:var(--yellow); right:0; top:16%; z-index:0; }
.scribble { position:absolute; width:150px; height:180px; background-image:radial-gradient(circle,var(--pink) 0 5px,transparent 6px); background-size:24px 24px; right:-20px; bottom:5%; transform:rotate(15deg); }
.about-tag { position:absolute; z-index:4; right:-28px; top:54%; background:white; padding:18px 22px; border-radius:18px; box-shadow:0 18px 50px rgba(20,24,30,.12); font-size:13px; line-height:1.35; color:var(--muted); }
.about-tag strong { color:var(--pink); font-size:18px; }
.about-copy > p:not(.eyebrow) { color:var(--muted); font-size:16px; max-width:650px; }
.about-copy strong { color:var(--ink); }

.principles { background:var(--blue); color:white; padding:110px 0; position:relative; overflow:hidden; }
.principle-list { position:relative; z-index:2; }
.principle { display:grid; grid-template-columns:70px 1fr minmax(260px,440px); gap:34px; align-items:start; padding:36px 0; border-top:1px solid rgba(255,255,255,.25); }
.principle:last-child { border-bottom:1px solid rgba(255,255,255,.25); }
.principle > span { font-family:"Economica", sans-serif; font-size:22px; opacity:.7; }
.principle h3 { font-size:clamp(28px,3.1vw,48px); letter-spacing:-.04em; margin:0; }
.principle p { color:rgba(255,255,255,.78); margin:5px 0 0; }
.principle-orb { position:absolute; width:480px; height:480px; border-radius:50%; background:var(--pink); right:-280px; bottom:-220px; opacity:.75; }

.section-heading { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:56px; }
.section-heading h2 { margin-bottom:0; }
.heading-note { width:min(380px,100%); color:var(--muted); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.service-card { min-height:330px; padding:30px; border-radius:var(--radius-md); position:relative; overflow:hidden; display:flex; flex-direction:column; transition:transform .35s var(--ease), box-shadow .35s var(--ease); border:1px solid rgba(22,24,30,.08); }
.service-card:hover { transform:translateY(-8px); box-shadow:0 20px 50px rgba(20,25,30,.12); }
.service-card.yellow { background:var(--yellow); }
.service-card.pink { background:var(--pink); color:white; }
.service-card.blue { background:var(--blue); color:white; }
.service-card.white { background:white; }
.service-number { font-family:"Economica", sans-serif; font-size:16px; opacity:.7; }
.service-icon { font-size:54px; line-height:1; margin:20px 0 auto; opacity:.8; }
.service-card h3 { font-size:23px; line-height:1.15; letter-spacing:-.03em; margin:18px 0 12px; }
.service-card p { font-size:13px; line-height:1.6; margin:0; opacity:.82; }

.approaches { background:#fff; }
.approaches-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:start; }
.approach-photo-wrap { position:sticky; top:125px; }
.approach-photo { width:100%; height:720px; object-fit:cover; border-radius:44px; box-shadow:var(--shadow); }
.approach-badge { position:absolute; left:-26px; bottom:34px; background:var(--yellow); padding:15px 20px; border-radius:999px; font-weight:800; font-size:13px; transform:rotate(-3deg); }
.approach-copy h2 { margin-bottom:50px; }
.approach-block { padding:32px 0 38px; border-top:1px solid var(--line); }
.approach-block:last-child { border-bottom:1px solid var(--line); }
.approach-title { display:grid; grid-template-columns:72px 1fr; gap:22px; align-items:center; margin-bottom:24px; }
.approach-title > span { width:66px; height:66px; border-radius:50%; display:grid; place-items:center; color:white; background:var(--pink); font-family:"Rubik One", sans-serif; font-size:15px; }
.approach-block:nth-of-type(2) .approach-title > span { background:var(--blue); }
.approach-title h3 { margin:0; font-size:24px; letter-spacing:-.025em; }
.approach-label { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.13em; color:var(--blue); margin-bottom:8px; }
.approach-block ul { padding-left:20px; color:var(--muted); }
.approach-block > p:last-child { color:var(--muted); }

.joy-break { background:var(--pink); color:white; padding:90px 0; position:relative; overflow:hidden; }
.joy-grid { display:grid; grid-template-columns:1fr .82fr; align-items:center; gap:80px; }
.joy-copy { position:relative; z-index:3; }
.joy-copy h2 { font-size:clamp(48px,6vw,82px); }
.joy-copy h2 span { color:var(--yellow); }
.joy-copy > p:not(.eyebrow) { max-width:580px; color:rgba(255,255,255,.85); font-size:17px; margin-bottom:28px; }
.joy-photo { width:100%; height:620px; border-radius:52% 48% 46% 54% / 54% 44% 56% 46%; overflow:hidden; transform:rotate(2deg); box-shadow:0 28px 70px rgba(82,10,43,.24); position:relative; z-index:2; }
.joy-photo img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.joy-dots { position:absolute; width:300px; height:260px; right:22%; top:-80px; background-image:radial-gradient(circle,var(--yellow) 0 5px,transparent 6px); background-size:32px 32px; transform:rotate(18deg); opacity:.85; }

.credentials { background:var(--paper); }
.credentials-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:90px; align-items:center; }
.credentials-photo { height:630px; overflow:hidden; border-radius:40px 40px 180px 40px; box-shadow:var(--shadow); }
.credentials-photo img { width:100%; height:100%; object-fit:cover; object-position:center 26%; }
.quote-mark { font-family:Georgia,serif; font-size:100px; color:var(--yellow); line-height:.65; margin-top:12px; }
blockquote { margin:0 0 28px; font-size:23px; line-height:1.45; letter-spacing:-.02em; }
.value-chips { display:flex; flex-wrap:wrap; gap:10px; }
.value-chips span { padding:9px 14px; border-radius:999px; background:white; border:1px solid var(--line); font-size:12px; font-weight:700; }

.location { overflow:hidden; background:white; }
.location-grid { display:grid; grid-template-columns:1fr .86fr; gap:80px; align-items:center; }
.location-copy { position:relative; z-index:3; }
.location-copy > p:not(.eyebrow) { color:var(--muted); font-size:17px; max-width:620px; }
.address-card { display:flex; gap:18px; align-items:center; padding:22px; border:1px solid var(--line); border-radius:22px; max-width:520px; margin:28px 0 24px; background:var(--paper); }
.address-icon { width:48px; height:48px; flex:0 0 auto; border-radius:50%; background:var(--yellow); display:grid; place-items:center; font-size:24px; }
.address-card div:last-child { display:flex; flex-direction:column; }
.address-card strong { font-size:15px; }
.address-card span { color:var(--muted); font-size:13px; }
.location-photo { height:690px; border-radius:48% 52% 48% 52% / 36% 42% 58% 64%; overflow:hidden; position:relative; box-shadow:var(--shadow); }
.location-photo img { width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.doodle-location { width:240px; right:-30px; bottom:40px; color:var(--yellow); z-index:3; filter:drop-shadow(0 3px 0 rgba(0,0,0,.08)); }
.location-shape { position:absolute; width:460px; height:460px; border-radius:50%; background:var(--blue); left:-300px; top:20%; opacity:.08; }
.ticker-alt { background:var(--blue); color:white; }
.ticker-alt .ticker-track i { color:var(--yellow); }
.ticker-track-reverse { animation-direction:reverse; }

.faq { background:var(--paper); }
.faq-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:100px; align-items:start; }
.faq-heading { position:sticky; top:130px; }
.faq-heading > p:not(.eyebrow) { color:var(--muted); max-width:390px; }
.faq-list details { border-top:1px solid var(--line); }
.faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 0; font-weight:700; font-size:17px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { width:34px; height:34px; border-radius:50%; background:white; display:grid; place-items:center; transition:transform .3s ease, background .3s ease; }
.faq-list details[open] summary span { transform:rotate(45deg); background:var(--yellow); }
.faq-list details p { margin:0 58px 26px 0; color:var(--muted); }

.contact { background:var(--ink); color:white; padding:110px 0; position:relative; overflow:hidden; }
.contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; align-items:start; }
.contact-copy h2 span { color:var(--yellow); }
.contact-copy > p:not(.eyebrow) { color:rgba(255,255,255,.72); max-width:520px; }
.contact-links { margin-top:34px; display:flex; flex-direction:column; }
.contact-links a { display:flex; justify-content:space-between; gap:20px; padding:17px 0; border-top:1px solid rgba(255,255,255,.17); }
.contact-links a:last-child { border-bottom:1px solid rgba(255,255,255,.17); }
.contact-links strong { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--yellow); }
.contact-links span { font-size:13px; color:rgba(255,255,255,.75); }
.contact-form { position:relative; z-index:3; background:white; color:var(--ink); padding:34px; border-radius:32px; display:grid; grid-template-columns:1fr 1fr; gap:18px; box-shadow:0 30px 80px rgba(0,0,0,.25); }
.contact-form label { display:flex; flex-direction:column; gap:7px; font-size:11px; text-transform:uppercase; letter-spacing:.1em; font-weight:800; }
.contact-form label:nth-of-type(4), .contact-form .form-note, .contact-form button { grid-column:1/-1; }
.contact-form input, .contact-form textarea { width:100%; border:1px solid var(--line); border-radius:14px; background:#fafafa; padding:14px 15px; outline:none; font-size:14px; text-transform:none; letter-spacing:0; font-weight:500; transition:border .2s, box-shadow .2s; resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(2,129,172,.11); }
.contact-form .form-note { margin:0; color:var(--muted); font-size:10px; line-height:1.45; }
.contact-form .btn-light { background:var(--yellow); }
.contact-blob { position:absolute; border-radius:50%; filter:blur(1px); }
.contact-blob-a { width:360px; height:360px; background:var(--pink); left:-220px; bottom:-170px; }
.contact-blob-b { width:280px; height:280px; background:var(--blue); right:-150px; top:-120px; opacity:.85; }

.site-footer { background:#0E1014; color:white; padding:50px 0; border-top:1px solid rgba(255,255,255,.08); }
.footer-grid { display:grid; grid-template-columns:1fr auto 1fr; gap:50px; align-items:center; }
.footer-brand img { width:130px; }
.footer-brand p, .footer-meta p { margin:8px 0 0; color:rgba(255,255,255,.55); font-size:11px; }
.footer-nav { display:flex; gap:22px; flex-wrap:wrap; justify-content:center; }
.footer-nav a { font-size:12px; color:rgba(255,255,255,.72); }
.footer-meta { text-align:right; }

.whatsapp-float { position:fixed; z-index:900; right:22px; bottom:22px; width:58px; height:58px; border-radius:50%; background:var(--pink); display:grid; place-items:center; box-shadow:0 16px 40px rgba(227,61,133,.35); transition:transform .25s var(--ease); }
.whatsapp-float:hover { transform:translateY(-4px) scale(1.03); }
.whatsapp-float svg { width:30px; fill:white; }

[data-reveal] { opacity:0; transform:translateY(34px); transition:opacity .85s var(--ease), transform .85s var(--ease); transition-delay:var(--delay,0ms); }
[data-reveal="left"] { transform:translateX(-44px); }
[data-reveal="right"] { transform:translateX(44px); }
[data-reveal="scale"] { transform:scale(.94); }
[data-reveal].is-visible { opacity:1; transform:none; }

@media (max-width: 1040px) {
  :root { --container:min(100% - 36px, 920px); }
  .desktop-nav, .header-cta { display:none; }
  .menu-toggle { display:block; }
  .mobile-nav { position:fixed; inset:0; background:rgba(251,250,247,.75); z-index:1; padding:110px 28px 30px; flex-direction:column; gap:10px; opacity:0; visibility:hidden; transform:translateY(-20px); transition:.3s var(--ease); }
  .mobile-nav.open { display:flex; opacity:1; visibility:visible; transform:none; }
  body.menu-open { overflow:hidden; }
  body.menu-open::before { content:""; position:fixed; inset:0; background:rgba(251,250,247,.75); z-index:999; }
  body.menu-open .site-header { background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; box-shadow:none; }
  body.menu-open .mobile-nav { background:transparent; }
  .mobile-nav a:not(.btn) { font-size:34px; font-weight:800; letter-spacing:-.04em; padding:8px 0; }
  .mobile-nav .btn { margin-top:18px; width:max-content; }
  .hero-grid, .about-grid, .approaches-grid, .credentials-grid, .location-grid, .faq-grid, .contact-grid { grid-template-columns:1fr; }
  .hero { padding-top:130px; }
  .hero-grid { gap:30px; }
  .hero-visual { min-height:590px; }
  .hero-photo-frame { width:min(560px,80vw); }
  .floating-card-pink { left:7%; }
  .floating-card-blue { right:7%; }
  .about-grid { gap:50px; }
  .about-visual { width:min(620px,100%); margin:0 auto; }
  .about-copy { max-width:760px; }
  .principle { grid-template-columns:55px 1fr; }
  .principle p { grid-column:2; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .approach-photo-wrap, .faq-heading { position:relative; top:auto; }
  .approach-photo-wrap { width:min(600px,100%); margin:0 auto; }
  .approach-photo { height:650px; }
  .joy-grid { grid-template-columns:1fr; }
  .joy-photo { width:min(570px,100%); height:650px; margin:0 auto; }
  .credentials-photo { width:min(560px,100%); margin:0 auto; }
  .location-photo { width:min(560px,100%); margin:0 auto; }
  .faq-grid, .contact-grid { gap:50px; }
  .footer-grid { grid-template-columns:1fr; text-align:center; }
  .footer-brand img { margin:0 auto; }
  .footer-meta { text-align:center; }
}

@media (max-width: 680px) {
  :root { --container:calc(100vw - 30px); --radius-lg:32px; --radius-md:22px; }
  .section { padding:82px 0; }
  .site-header { padding-top:10px; }
  .brand { width:100px; }
  h1 { font-size:clamp(44px,14vw,62px); }
  h2 { font-size:clamp(38px,11vw,52px); }
  .hero { min-height:auto; padding:120px 0 74px; }
  .hero-lead { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-notes { gap:14px; justify-content:space-between; }
  .hero-notes span { flex-direction:column; align-items:flex-start; gap:0; }
  .hero-visual { min-height:490px; }
  .hero-photo-frame { width:88vw; max-width:440px; }
  .floating-card { min-width:145px; padding:12px 14px; }
  .floating-card-pink { left:0; top:28%; }
  .floating-card-blue { right:0; bottom:12%; }
  .doodle-hero { width:180px; top:14%; right:-40px; }
  .scroll-cue { display:none; }
  .ticker-track { font-size:14px; gap:20px; }
  .about-visual { min-height:520px; }
  .photo-organic { height:500px; width:92%; }
  .about-tag { right:0; top:auto; bottom:16%; }
  .scribble { width:110px; right:-10px; }
  .principles { padding:82px 0; }
  .principle { grid-template-columns:42px 1fr; gap:15px; padding:27px 0; }
  .principle h3 { font-size:30px; }
  .principle p { font-size:13px; }
  .section-heading { align-items:start; flex-direction:column; gap:10px; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:285px; }
  .approaches-grid { gap:52px; }
  .approach-photo { height:560px; }
  .approach-badge { left:10px; }
  .approach-title { grid-template-columns:58px 1fr; gap:14px; }
  .approach-title > span { width:54px; height:54px; }
  .approach-title h3 { font-size:20px; }
  .joy-break { padding:76px 0; }
  .joy-photo { height:520px; }
  .credentials-grid { gap:48px; }
  .credentials-photo { height:530px; }
  blockquote { font-size:19px; }
  .location-photo { height:560px; }
  .faq-list summary { font-size:15px; }
  .contact { padding:82px 0; }
  .contact-form { grid-template-columns:1fr; padding:24px; }
  .contact-form label:nth-of-type(4), .contact-form .form-note, .contact-form button { grid-column:auto; }
  .contact-links a { flex-direction:column; gap:3px; }
  .whatsapp-float { width:54px; height:54px; right:16px; bottom:16px; }
}

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