:root {
  --cream: #f7f3ec;
  --paper: #fffdf9;
  --ink: #23332d;
  --forest: #314d41;
  --forest-dark: #20372e;
  --sage: #9aaa87;
  --sage-soft: #dfe5d5;
  --terracotta: #c97b5a;
  --sand: #e7dccb;
  --line: rgba(35, 51, 45, .14);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --shadow: 0 24px 70px rgba(38, 54, 47, .12);
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; scroll-padding-top: 90px; }
body { width: 100%; max-width: 100%; margin: 0; overflow-x: hidden; color: var(--ink); background: var(--cream); font-family: var(--sans); line-height: 1.65; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img, svg { max-width: 100%; }
button { color: inherit; font: inherit; }
.container { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }
.section { padding: 120px 0; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 999; padding: 10px 16px; background: var(--forest); color: white; transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.site-header { position: fixed; top: 0; left: 0; width: 100%; z-index: 100; transition: background .3s, box-shadow .3s; }
.site-header.scrolled { background: rgba(247, 243, 236, .92); backdrop-filter: blur(16px); box-shadow: 0 1px 0 var(--line); }
.nav-wrap { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand-mark { width: 45px; height: 45px; border: 1px solid var(--forest); border-radius: 50% 50% 44% 56%; display: grid; place-items: center; font: 600 15px var(--serif); transform: rotate(-4deg); }
.brand-mark::first-letter { color: var(--terracotta); }
.brand-copy { display: flex; flex-direction: column; line-height: 1.15; }
.brand-copy strong { font: 600 18px var(--serif); letter-spacing: .01em; }
.brand-copy small { margin-top: 4px; font-size: 9px; letter-spacing: .25em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 32px; font-size: 13px; font-weight: 500; }
.main-nav a:not(.nav-cta) { position: relative; }
.main-nav a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; bottom: -5px; width: 0; height: 1px; background: var(--terracotta); transition: width .25s; }
.main-nav a:hover::after { width: 100%; }
.nav-cta { padding: 11px 20px; border: 1px solid var(--forest); border-radius: 100px; transition: .25s; }
.nav-cta:hover { background: var(--forest); color: white; }
.menu-toggle { display: none; border: 0; background: none; padding: 10px; cursor: pointer; }
.menu-toggle span { display: block; width: 24px; height: 1px; background: var(--ink); margin: 5px; transition: .25s; }

.hero { min-height: 790px; position: relative; overflow: hidden; padding: 160px 0 90px; display: flex; align-items: center; }
.hero::after { content: ""; position: absolute; left: 52%; top: 0; bottom: 0; width: 1px; background: rgba(35,51,45,.07); }
.hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 70px; position: relative; z-index: 2; }
.eyebrow { margin: 0 0 22px; display: flex; align-items: center; gap: 11px; font-size: 11px; letter-spacing: .18em; font-weight: 600; text-transform: uppercase; }
.eyebrow span { display: block; width: 30px; height: 1px; background: var(--terracotta); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 28px; font: 600 clamp(47px, 5.1vw, 75px)/1.08 var(--serif); letter-spacing: -.03em; }
h1 em, h2 em { color: var(--terracotta); font-weight: 500; }
.hero-lead { max-width: 570px; font-size: 17px; color: rgba(35,51,45,.76); }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 36px; }
.button { min-height: 53px; padding: 0 26px; border-radius: 100px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-size: 13px; font-weight: 600; line-height: 1.2; letter-spacing: .02em; transition: transform .2s, background .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); }
.button svg { display:block; flex:0 0 18px; width:18px; height:18px; margin:0; fill:currentColor; }
.button-primary { color:white; background:#25d366; box-shadow:0 10px 28px rgba(37,211,102,.24); }
.button-primary:hover { background:#1fbd5b; box-shadow:0 13px 34px rgba(37,211,102,.32); }
.text-link { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 4px; border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 600; }
.arrow-down-right { width:17px; height:17px; flex:0 0 17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s; }
.text-link:hover .arrow-down-right { transform:translate(3px,3px); }
.hero-note { display: flex; gap: 9px; align-items: center; margin-top: 30px; color: rgba(35,51,45,.6); font-size: 11px; }
.hero-note span { color: var(--terracotta); }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(1px); }
.hero-orb-one { width: 350px; height: 350px; left: -220px; top: 140px; background: rgba(201,123,90,.09); }
.hero-orb-two { width: 300px; height: 300px; right: -140px; bottom: -80px; border: 1px solid rgba(49,77,65,.12); }

.hero-art { position: relative; min-width: 0; min-height: 510px; display: grid; place-items: center; }
.hero-art-stage { position: relative; width: 510px; height: 510px; display: grid; place-items: center; transform-origin: center center; }
.hero-art-stage::before { content: ""; position: absolute; width: 455px; height: 455px; border-radius: 49% 51% 55% 45%; background: var(--sage-soft); transform: rotate(8deg); }
.hero-art-stage::after { content: ""; position: absolute; width: 410px; height: 410px; border: 1px solid rgba(49,77,65,.2); border-radius: 50% 46% 53% 47%; transform: rotate(-13deg); }
.plate { position: relative; z-index: 2; width: 330px; height: 330px; border: 18px solid var(--paper); border-radius: 50%; background: #e9dfcd; box-shadow: 0 35px 55px rgba(35,51,45,.18), inset 0 0 0 2px rgba(35,51,45,.05); }
.plate-inner { position: absolute; inset: 16px; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 38% 38%, #f9ead6 0 30%, transparent 31%), linear-gradient(135deg,#d3bd8a 0 50%,#f4dfba 50%); }
.leaf { position: absolute; width: 54px; height: 100px; border-radius: 100% 0 100% 0; background: #718660; z-index: 2; }
.leaf-a { left: 52px; top: 18px; transform: rotate(-35deg); }.leaf-b { left: 18px; top: 70px; transform: rotate(-65deg) scale(.75); background: #9caf78; }
.tomato { position: absolute; width: 60px; height: 60px; border-radius: 50%; background: radial-gradient(circle at 38% 32%,#efb39c,#bc5c48 68%); box-shadow: inset 0 0 0 2px rgba(110,46,34,.12); }
.tomato::after { content:"✦"; color:#516b48; position:absolute; left:21px; top:-8px; font-size:25px; }
.tomato-a { right: 40px; top: 52px; }.tomato-b { right: 80px; bottom: 32px; transform:scale(.72); }
.cucumber { position:absolute; width:52px; height:52px; border-radius:50%; background:radial-gradient(circle,#dce9b4 0 12%,transparent 13%),radial-gradient(circle at 60% 35%,#dce9b4 0 9%,transparent 10%),#819d62; border:6px solid #58744f; }
.cucumber-a { right:25px; top:135px; }.cucumber-b { right:58px; top:155px; transform:scale(.8); }
.grain { position:absolute; width:13px; height:44px; border-radius:100%; background:#c99f54; transform:rotate(35deg); }
.grain-a { left:115px; bottom:30px; }.grain-b { left:140px; bottom:18px; transform:rotate(55deg); }.grain-c { left:90px; bottom:16px; transform:rotate(17deg); }
.avocado { position:absolute; left:72px; top:100px; width:85px; height:125px; background:#a9b967; border:10px solid #52694c; border-radius:50% 50% 46% 46% / 64% 64% 36% 36%; transform:rotate(25deg); z-index:3; }
.avocado-pit { position:absolute; left:94px; top:153px; width:46px; height:46px; border-radius:50%; background:#a76c3f; z-index:4; box-shadow:inset -4px -4px 8px rgba(70,34,10,.15); }
.art-caption { position: absolute; z-index: 5; padding: 15px 19px; background: rgba(255,253,249,.93); box-shadow: 0 14px 34px rgba(35,51,45,.12); backdrop-filter: blur(8px); }
.art-caption-top { top: 24px; right: -12px; }
.art-caption-bottom { left: -10px; bottom: 35px; }
.art-caption small, .art-caption span { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: .15em; color: var(--terracotta); }
.art-caption strong { display: block; font: 500 15px/1.4 var(--serif); }

.intro-strip { background: var(--forest); color: white; }
.strip-grid { display: grid; grid-template-columns: repeat(4,1fr); padding: 35px 0; }
.strip-grid div { display: flex; align-items: center; gap: 19px; padding: 5px 35px; border-right: 1px solid rgba(255,255,255,.14); }
.strip-grid div:first-child { padding-left: 0; }.strip-grid div:last-child { border: 0; }
.strip-grid span { font: italic 500 25px var(--serif); color: #cfad90; }
.strip-grid p { margin: 0; font-size: 12px; line-height: 1.5; }

.about { background: var(--paper); }
.about-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 110px; align-items: center; }
.about-visual { min-height: 560px; position: relative; }
.portrait-card { width: 83%; height: 520px; display: grid; place-content: center; text-align: center; position: relative; overflow: hidden; background: #dce3d4; border-radius: 48% 48% 9px 9px; }
.portrait-card::before { content:""; position:absolute; z-index:2; inset:auto 0 0; height:28%; background:linear-gradient(transparent,rgba(20,31,27,.58)); pointer-events:none; }
.portrait-card::after { content:""; position:absolute; z-index:3; inset:20px; border:1px solid rgba(255,255,255,.4); border-radius:inherit; pointer-events:none; }
.portrait-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.portrait-card p { position:absolute; z-index:4; bottom:26px; width:100%; margin:0; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.92); text-shadow:0 1px 8px rgba(0,0,0,.35); }
.mini-quote { position:absolute; right:0; bottom:38px; z-index:5; background:var(--terracotta); color:white; padding:23px 27px; font:italic 500 17px/1.5 var(--serif); box-shadow:var(--shadow); }
h2 { margin-bottom: 28px; font: 600 clamp(40px, 4.2vw, 58px)/1.12 var(--serif); letter-spacing: -.025em; }
.about-copy > p:not(.eyebrow) { color: rgba(35,51,45,.72); font-size: 15px; }
.signature { margin: 27px 0 28px; font: italic 500 26px var(--serif); color: var(--terracotta); }
.signature small { margin-left:12px; font:500 8px var(--sans); letter-spacing:.2em; text-transform:uppercase; color:var(--ink); }

.services { background: var(--forest-dark); color: white; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:55px; }
.section-heading h2 { margin-bottom:0; }.section-heading > p { max-width:365px; color:rgba(255,255,255,.62); font-size:14px; }
.eyebrow-light span { background:#d7a88e; }.eyebrow-light { color:rgba(255,255,255,.75); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.15); border-left:1px solid rgba(255,255,255,.15); }
.service-card { min-height:315px; padding:34px; position:relative; border-right:1px solid rgba(255,255,255,.15); border-bottom:1px solid rgba(255,255,255,.15); transition:background .3s,transform .3s; }
.service-card:hover { background:#2b463b; transform:translateY(-4px); }
.service-no { position:absolute; right:25px; top:20px; color:rgba(255,255,255,.28); font:italic 500 16px var(--serif); }
.service-icon { width:54px; height:54px; margin-bottom:35px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#d7a88e; font:26px var(--serif); }
.arrow-up-right { width:16px; height:16px; display:inline-block; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.service-icon .arrow-up-right { width:25px; height:25px; }
.service-card h3 { margin-bottom:15px; font:500 23px var(--serif); }
.service-card p { color:rgba(255,255,255,.58); font-size:13px; }

.process { background:var(--cream); }
.center-heading { max-width:700px; text-align:center; margin:0 auto 70px; }
.center-heading .eyebrow { justify-content:center; }.center-heading > p:last-child { color:rgba(35,51,45,.65); }
.timeline { display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.timeline::before { content:""; position:absolute; left:11%; right:11%; top:32px; height:1px; background:var(--line); }
.step { text-align:center; padding:0 24px; position:relative; }
.step-dot { width:65px; height:65px; margin:0 auto 25px; position:relative; z-index:2; display:grid; place-items:center; background:var(--cream); border:1px solid var(--sage); border-radius:50%; font:italic 500 22px var(--serif); color:var(--forest); transition:.25s; }
.step:hover .step-dot { background:var(--forest); color:white; transform:scale(1.06); }
.step h3 { margin-bottom:11px; font:500 21px var(--serif); }.step p { color:rgba(35,51,45,.64); font-size:13px; }

.manifesto { padding:105px 0; color:white; background:var(--terracotta); position:relative; overflow:hidden; }
.manifesto::before,.manifesto::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.17); border-radius:50%; width:360px; height:360px; }
.manifesto::before { left:-180px; top:-170px; }.manifesto::after { right:-100px; bottom:-260px; }
.manifesto-inner { position:relative; z-index:2; text-align:center; }
.spark { display:block; margin-bottom:15px; font-size:25px; color:#f4decf; }
.manifesto p { margin-bottom:32px; font:500 clamp(31px,4vw,50px)/1.25 var(--serif); }
.manifesto p em { color:#ffe5d5; }.button-cream { background:var(--cream); color:var(--forest); }

.faq { background:var(--paper); }
.faq-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:110px; }
.faq-heading { position:sticky; top:130px; align-self:start; }.faq-heading > p:not(.eyebrow) { color:rgba(35,51,45,.65); font-size:14px; }
.faq-item { border-top:1px solid var(--line); }.faq-item:last-child { border-bottom:1px solid var(--line); }
.faq-item button { width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 4px; border:0; background:none; text-align:left; cursor:pointer; font:500 19px var(--serif); }
.faq-item button i { font:300 25px var(--sans); font-style:normal; transition:transform .3s; color:var(--terracotta); }
.faq-item button[aria-expanded="true"] i { transform:rotate(45deg); }
.faq-answer { display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s ease; }
.faq-answer p { overflow:hidden; margin:0; color:rgba(35,51,45,.65); font-size:14px; }
.faq-item.open .faq-answer { grid-template-rows:1fr; }.faq-item.open .faq-answer p { padding:0 45px 25px 4px; }

.contact { background:var(--cream); padding-top:20px; }
.contact-card { display:grid; grid-template-columns:1.05fr .95fr; color:white; background:var(--forest); box-shadow:var(--shadow); }
.contact-copy { padding:75px; }.contact-copy h2 { margin-bottom:22px; }.contact-copy h2 em { color:#dfb398; }.contact-copy > p:not(.eyebrow) { max-width:520px; color:rgba(255,255,255,.63); font-size:14px; }
.contact-actions { display:flex; align-items:center; gap:25px; margin-top:35px; }
.instagram-link { display:inline-flex; align-items:center; gap:9px; font-size:13px; border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:3px; }
.instagram-link svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }
.contact-details { padding:55px 50px; background:rgba(0,0,0,.08); display:flex; flex-direction:column; justify-content:center; }
.detail-row { display:grid; grid-template-columns:45px 1fr; gap:18px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.14); }.detail-row:last-child{border:0}
.detail-icon { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.23); border-radius:50%; color:#e0bba5; }
.detail-icon .arrow-up-right { width:20px; height:20px; }
.detail-row small { display:block; margin-bottom:5px; color:rgba(255,255,255,.45); font-size:9px; letter-spacing:.18em; text-transform:uppercase; }.detail-row strong { font-size:13px; font-weight:500; line-height:1.6; }
.map-buttons { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }.map-buttons a { padding:7px 11px; border:1px solid rgba(255,255,255,.24); border-radius:4px; font-size:10px; transition:.2s; }.map-buttons a:hover { background:white;color:var(--forest); }.google-g { font-weight:700;color:#e8a285; }

.site-footer { padding:50px 0 25px; background:var(--paper); }
.footer-top { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; padding-bottom:38px; }
.footer-top nav { display:flex; gap:25px; font-size:11px; }.footer-top nav a:hover { color:var(--terracotta); }.footer-social { justify-self:end; display:inline-flex; align-items:center; gap:6px; font-size:11px; border-bottom:1px solid var(--ink); }
.footer-bottom { display:flex; justify-content:space-between; gap:30px; padding-top:20px; border-top:1px solid var(--line); color:rgba(35,51,45,.48); font-size:9px; }.footer-bottom p { margin:0; }
.floating-whatsapp { position:fixed; z-index:50; right:24px; bottom:24px; width:55px; height:55px; padding:0; display:flex; align-items:center; justify-content:center; box-sizing:border-box; line-height:0; border-radius:50%; color:white; background:#25d366; box-shadow:0 12px 30px rgba(35,51,45,.25); transition:.2s; }.floating-whatsapp:hover { background:#1fbd5b; transform:translateY(-3px) scale(1.03); }.floating-whatsapp svg { display:block; flex:0 0 27px; width:27px; height:27px; margin:0; fill:currentColor; }
.toast { position:fixed; left:50%; bottom:28px; z-index:200; max-width:calc(100% - 40px); padding:13px 18px; color:white; background:var(--forest-dark); border-radius:8px; box-shadow:var(--shadow); font-size:12px; opacity:0; pointer-events:none; transform:translate(-50%,20px); transition:.3s; }.toast.show { opacity:1; transform:translate(-50%,0); }

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

@media (max-width: 980px) {
  .section { padding:90px 0; }.hero { padding-top:140px; }.hero-grid { gap:30px; }.hero-art-stage { transform:scale(.85); }.hero::after{display:none}
  .strip-grid div { padding-inline:18px; }.about-grid { gap:60px; }.service-card { padding:28px; }.contact-copy { padding:55px 45px; }
}

@media (max-width: 780px) {
  body { font-size:16px; line-height:1.72; }
  main,.section,.intro-strip,.site-footer { max-width:100%; overflow-x:clip; }
  .container { width:min(calc(100% - 32px), 620px); }.site-header { background:rgba(247,243,236,.95); }.nav-wrap { min-height:74px; }
  .menu-toggle { display:block; position:relative; z-index:102; }.menu-toggle.active span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .main-nav { position:fixed; inset:0; min-height:100dvh; padding:110px 32px 50px; flex-direction:column; justify-content:center; gap:28px; background:var(--cream); font:500 25px var(--serif); opacity:0; visibility:hidden; transform:translateY(-10px); transition:.3s; }.main-nav.open { opacity:1;visibility:visible;transform:none; }.nav-cta { min-width:160px; text-align:center; font:600 14px var(--sans); }
  .hero { min-height:auto; padding:120px 0 55px; }.hero-grid { width:100%; grid-template-columns:minmax(0,1fr); }.hero-copy { min-width:0; text-align:center; }.hero-copy .eyebrow,.hero-actions,.hero-note { justify-content:center; }.hero-lead { margin-inline:auto; font-size:16px; }.hero-art { width:100%; min-width:0; min-height:390px; margin:0 auto; overflow:hidden; }.hero-art-stage { position:absolute; left:50%; flex:none; transform:translateX(-50%) scale(.72); }.art-caption-top{right:-2px}.art-caption-bottom{left:0}
  .strip-grid { grid-template-columns:1fr 1fr; }.strip-grid div { padding:18px; border-bottom:1px solid rgba(255,255,255,.14); }.strip-grid div:nth-child(2){border-right:0}.strip-grid div:nth-child(3),.strip-grid div:nth-child(4){border-bottom:0}
  .about-grid { grid-template-columns:minmax(0,1fr); }.about-visual { min-width:0; min-height:0; display:flex; flex-direction:column; align-items:center; }.portrait-card { width:88%; max-width:440px; height:470px; flex:none; }.mini-quote { position:relative; right:auto; bottom:auto; width:min(88%,440px); margin:-1px auto 0; text-align:center; }.about-copy { max-width:590px; }.about-copy > p:not(.eyebrow) { font-size:16px; }
  .section-heading { display:block; }.section-heading > p { margin-top:22px; }.service-grid { grid-template-columns:1fr 1fr; }
  .service-card p,.step p,.section-heading > p,.center-heading > p:last-child,.faq-heading > p:not(.eyebrow),.faq-answer p,.contact-copy > p:not(.eyebrow) { font-size:15px; }
  .timeline { grid-template-columns:1fr 1fr; gap:45px 0; }.timeline::before{display:none}.faq-grid { grid-template-columns:minmax(0,1fr); gap:45px; }.faq-heading{position:static}.faq-item button{font-size:20px;line-height:1.4}.contact-card { grid-template-columns:minmax(0,1fr); }.detail-row strong{font-size:14px}.map-buttons a{font-size:12px;padding:9px 12px}.footer-top{grid-template-columns:1fr;justify-items:center;text-align:center}.footer-social{justify-self:center}.footer-bottom{display:block;text-align:center;font-size:12px;line-height:1.6}.footer-bottom p+p{margin-top:8px}
}

@media (max-width: 520px) {
  .container { width:calc(100% - 32px); }.section{padding:68px 0}.brand-copy strong{font-size:16px}.brand-copy small{font-size:10px}.brand-mark{width:42px;height:42px}
  .eyebrow{margin-bottom:17px;font-size:12px;letter-spacing:.14em}.eyebrow span{width:23px}
  h1 { font-size:clamp(2.55rem, 12vw, 3.2rem); line-height:1.08; overflow-wrap:normal; }.hero-lead{font-size:16px;line-height:1.7}.hero-actions{width:100%;flex-direction:column;gap:16px}.hero-actions .button{width:100%;max-width:330px}.hero-note{font-size:13px;line-height:1.5}.hero-art{min-height:330px;margin:4px auto 0}.hero-art-stage{transform:translateX(-50%) scale(.62)}.art-caption-top{right:5px}.art-caption-bottom{left:8px}
  .strip-grid{grid-template-columns:1fr 1fr;padding:9px 0}.strip-grid div{min-height:90px;padding:16px 10px;gap:11px;align-items:flex-start}.strip-grid span{font-size:22px}.strip-grid p{font-size:13px;line-height:1.45}
  h2{font-size:clamp(2.25rem, 10.5vw, 2.8rem);line-height:1.14}.about-visual{min-height:0}.portrait-card{width:100%;height:auto;aspect-ratio:.86}.portrait-card p{bottom:22px;padding-inline:16px;font-size:10px;line-height:1.4}.mini-quote{width:100%;max-width:none;padding:17px 20px;font-size:15px}
  .section-heading{margin-bottom:38px}.service-grid{grid-template-columns:minmax(0,1fr)}.service-card{min-height:auto;padding:30px 25px}.service-card h3{font-size:25px}.service-icon{margin-bottom:25px}.timeline{grid-template-columns:minmax(0,1fr)}.step{max-width:330px;margin:auto}.step h3{font-size:24px}.manifesto{padding:72px 0}.manifesto p{font-size:clamp(1.8rem,8vw,2.25rem)}
  .faq-item.open .faq-answer p{padding-right:6px}.contact-copy{padding:42px 24px}.contact-details{padding:24px}.contact-actions{align-items:stretch;flex-direction:column}.contact-actions .button{width:100%}.instagram-link{width:max-content;font-size:15px}.detail-row{grid-template-columns:40px minmax(0,1fr);gap:14px;padding:22px 0}.detail-icon{width:40px;height:40px}.detail-row small{font-size:11px}.detail-row strong{font-size:15px;overflow-wrap:anywhere}.map-buttons{flex-direction:column}.map-buttons a{text-align:center}.footer-top nav{flex-wrap:wrap;justify-content:center;gap:16px 22px;font-size:14px}.footer-social{font-size:14px}.floating-whatsapp{width:52px;height:52px;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}
}

@media (max-width: 360px) {
  .container { width:calc(100% - 24px); }
  h1 { font-size:2.35rem; }
  .hero-art { min-height:300px; }
  .hero-art-stage { transform:translateX(-50%) scale(.56); }
  .strip-grid { grid-template-columns:1fr; }
  .strip-grid div { min-height:0; border-right:0; border-bottom:1px solid rgba(255,255,255,.14)!important; }
  .strip-grid div:last-child { border-bottom:0!important; }
  .contact-copy,.contact-details { padding-left:20px;padding-right:20px; }
}

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