/* AMJD — site styles. Tailwind supplies layout utilities; this file holds the design system. */
:root{
  --ink:#17181A; --graphite:#26282B; --bone:#EFEEEB; --paper:#F8F7F5; --stone:#D8D5CF;
  --copper:#A9503F; --copper-dark:#8E4030; --gold:#CDAA5B; --muted:#66656A;
  --header-h:76px; --wrap:1200px; --gutter:clamp(1.25rem,4vw,2.5rem);
  --ease:cubic-bezier(.2,.7,.2,1);
}
html[lang="en"]{ --f-display:'Bricolage Grotesque','Hanken Grotesk',system-ui,sans-serif; --f-body:'Hanken Grotesk',system-ui,sans-serif; }
html[lang="ar"]{ --f-display:'Readex Pro','IBM Plex Sans Arabic',system-ui,sans-serif; --f-body:'IBM Plex Sans Arabic','Readex Pro',system-ui,sans-serif; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 12px); }
body{ font-size:1.0625rem; line-height:1.7; }
html[lang="ar"] body{ line-height:1.9; }
.font-display{ font-family:var(--f-display); letter-spacing:-.01em; }
html[lang="ar"] .font-display{ letter-spacing:0; }
:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; border-radius:2px; }
.wrap{ width:100%; max-width:calc(var(--wrap) + var(--gutter)*2); margin-inline:auto; padding-inline:var(--gutter); }
.skip-link{ position:absolute; inset-inline-start:1rem; top:-4rem; z-index:100; background:var(--gold); color:var(--ink); padding:.6rem 1rem; font-weight:600; transition:top .2s; }
.skip-link:focus{ top:1rem; }
.flip{ transform:scaleX(-1); }
[dir="rtl"] .flip-rtl{ transform:scaleX(-1); }
[dir="ltr"] .flip-ltr{ transform:scaleX(-1); }

/* type */
.h2{ font-family:var(--f-display); font-weight:600; font-size:clamp(1.9rem,4vw,3rem); line-height:1.15; letter-spacing:-.02em; text-wrap:balance; }
html[lang="ar"] .h2{ line-height:1.4; letter-spacing:0; }
.h3{ font-family:var(--f-display); font-weight:600; font-size:clamp(1.4rem,2.4vw,1.9rem); line-height:1.25; }
.lead{ font-size:clamp(1.05rem,1.4vw,1.2rem); }
.section{ padding-block:clamp(4rem,9vw,7.5rem); }
.section-sm{ padding-block:clamp(3rem,6vw,5rem); }

/* buttons & links */
.btn{ display:inline-flex; align-items:center; gap:.6rem; padding:.85rem 1.4rem; font-weight:600; font-size:1rem; line-height:1.2; border:1.5px solid transparent; border-radius:2px; cursor:pointer; transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease); }
.btn:active{ transform:translateY(1px); }
.btn-sm{ padding:.6rem 1rem; font-size:.95rem; }
.btn-lg{ padding:1rem 1.75rem; font-size:1.05rem; }
.btn-copper{ background:var(--copper); color:#fff; }
.btn-copper:hover{ background:var(--copper-dark); }
.btn-ghost{ border-color:rgba(255,255,255,.55); color:#fff; }
.btn-ghost:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.btn-outline{ border-color:var(--ink); color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:#fff; }
.link-arrow{ display:inline-flex; align-items:center; gap:.6rem; font-weight:600; color:var(--copper); border-bottom:1.5px solid currentColor; padding-bottom:2px; transition:gap .25s var(--ease),color .2s; }
.link-arrow:hover{ gap:1rem; color:var(--copper-dark); }

/* header */
.site-header{ position:fixed; inset-inline:0; top:0; z-index:50; color:#fff; transition:background-color .3s,box-shadow .3s,backdrop-filter .3s; }
.site-header[data-scrolled="true"],.site-header.is-open{ background:rgba(23,24,26,.92); backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(255,255,255,.08); }
.brand{ display:inline-flex; align-items:center; gap:.7rem; }
.brand-mark{ width:2.9rem; height:auto; }
.brand-name{ font-family:var(--f-display); font-weight:700; font-size:1.55rem; letter-spacing:.02em; line-height:1; }
html[lang="ar"] .brand-name{ letter-spacing:0; }
.nav-link{ position:relative; padding:.5rem .9rem; font-weight:500; font-size:1rem; color:rgba(255,255,255,.85); transition:color .2s; }
.nav-link::after{ content:""; position:absolute; inset-inline:.9rem; bottom:.2rem; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:center; transition:transform .3s var(--ease); }
.nav-link:hover,.nav-link[aria-current="page"]{ color:#fff; }
.nav-link:hover::after,.nav-link[aria-current="page"]::after{ transform:scaleX(1); }
.lang-switch{ display:inline-flex; align-items:center; gap:.4rem; padding:.5rem .8rem; font-weight:600; font-size:.95rem; border:1.5px solid rgba(255,255,255,.35); border-radius:2px; transition:background .2s,color .2s; }
.lang-switch:hover{ background:#fff; color:var(--ink); }
.menu-btn{ display:inline-grid; place-items:center; width:2.75rem; height:2.75rem; }
.menu-btn .when-open{ display:none; }
.menu-btn[aria-expanded="true"] .when-open{ display:block; }
.menu-btn[aria-expanded="true"] .when-closed{ display:none; }
.drawer{ background:var(--ink); border-top:1px solid rgba(255,255,255,.1); max-height:calc(100dvh - var(--header-h)); overflow:auto; }
.drawer[hidden]{ display:none; }
.drawer-nav{ display:flex; flex-direction:column; padding-block:1rem; }
.drawer-nav a{ padding:1rem 0; font-family:var(--f-display); font-size:1.5rem; font-weight:600; border-bottom:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.85); }
.drawer-nav a[aria-current="page"]{ color:var(--gold); }
.drawer-foot{ display:grid; gap:.75rem; padding-block:1.25rem 1.75rem; }

/* house mark: strokes draw themselves once */
.house path{ vector-effect:none; }
.house.is-drawing path{ stroke-dasharray:1; stroke-dashoffset:1; animation:draw 1.3s var(--ease) forwards; animation-delay:calc(.35s + var(--i)*.13s); }
@keyframes draw{ to{ stroke-dashoffset:0; } }

/* hero */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; background:var(--ink); }
.hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-shade{ position:absolute; inset:0; background:linear-gradient(to top,rgba(23,24,26,.92) 0%,rgba(23,24,26,.6) 45%,rgba(23,24,26,.45) 100%); }
.hero-house{ position:absolute; inset-inline-end:clamp(-6rem,-4vw,-1rem); top:50%; width:min(58vw,760px); transform:translateY(-58%); opacity:.5; pointer-events:none; }
[dir="rtl"] .hero-house{ inset-inline-end:auto; inset-inline-start:clamp(-6rem,-4vw,-1rem); }
.hero-inner{ position:relative; padding-block:calc(var(--header-h) + 3rem) clamp(5rem,10vw,7rem); }
.hero-title{ font-weight:600; font-size:clamp(2.4rem,6.6vw,5.4rem); line-height:1.05; letter-spacing:-.03em; max-width:16ch; text-wrap:balance; }
html[lang="ar"] .hero-title{ line-height:1.35; letter-spacing:0; max-width:14ch; }
.hero-title .line{ display:block; overflow:hidden; padding-block:.06em; }
.hero-title .line>span{ display:block; transform:translateY(105%); animation:rise 1s var(--ease) forwards; }
.hero-title .line:nth-child(2)>span{ animation-delay:.14s; color:var(--gold); }
@keyframes rise{ to{ transform:none; } }
.hero-sub{ margin-top:1.5rem; max-width:34rem; font-size:clamp(1.05rem,1.5vw,1.25rem); color:rgba(255,255,255,.82); opacity:0; animation:fade .8s .55s var(--ease) forwards; }
.hero-actions{ margin-top:2rem; display:flex; flex-wrap:wrap; gap:.75rem; opacity:0; animation:fade .8s .7s var(--ease) forwards; }
@keyframes fade{ to{ opacity:1; } }
.scroll-cue{ position:absolute; bottom:1.5rem; inset-inline-start:50%; width:1.6rem; height:2.6rem; border:1.5px solid rgba(255,255,255,.6); border-radius:1rem; transform:translateX(-50%); }
[dir="rtl"] .scroll-cue{ transform:translateX(50%); }
.scroll-cue span{ position:absolute; top:.5rem; left:50%; width:3px; height:.5rem; margin-left:-1.5px; border-radius:2px; background:#fff; animation:cue 1.8s infinite; }
@keyframes cue{ 0%{ opacity:0; transform:translateY(0);} 30%{opacity:1;} 100%{ opacity:0; transform:translateY(.9rem);} }
.video-toggle{ position:absolute; bottom:1.5rem; inset-inline-end:var(--gutter); width:2.6rem; height:2.6rem; display:grid; place-items:center; border:1.5px solid rgba(255,255,255,.6); border-radius:50%; color:#fff; transition:background .2s,color .2s; }
.video-toggle:hover{ background:#fff; color:var(--ink); }
.video-toggle .when-paused{ display:none; }
.video-toggle[aria-pressed="true"] .when-paused{ display:block; }
.video-toggle[aria-pressed="true"] .when-playing{ display:none; }
@media (max-width:640px){ .scroll-cue{ display:none; } }

/* intro */
.framed{ position:relative; }
.framed img{ display:block; }
.framed::before{ content:""; position:absolute; inset:1.25rem -1.25rem -1.25rem 1.25rem; border:2px solid var(--gold); z-index:0; }
[dir="rtl"] .framed::before{ inset:1.25rem 1.25rem -1.25rem -1.25rem; }
.framed img{ position:relative; z-index:1; }
.years{ position:absolute; z-index:2; bottom:-1.5rem; inset-inline-start:-1.5rem; background:var(--ink); color:#fff; padding:1.1rem 1.4rem; display:flex; align-items:baseline; gap:.6rem; }
.years strong{ font-family:var(--f-display); font-size:2.6rem; line-height:1; color:var(--gold); }
.years span{ font-size:.95rem; color:rgba(255,255,255,.8); max-width:8rem; line-height:1.3; }
.years-line{ display:flex; align-items:baseline; gap:.8rem; border-top:2px solid var(--gold); padding-top:1.2rem; }
.years-line strong{ font-family:var(--f-display); font-size:3.4rem; line-height:1; color:var(--copper); }
.years-line span{ color:var(--muted); }

/* service panels */
.panels{ display:flex; gap:.75rem; height:34rem; }
.panel{ position:relative; flex:1; overflow:hidden; display:flex; align-items:flex-end; background:var(--graphite); transition:flex .6s var(--ease); }
.panel:hover,.panel:focus-visible{ flex:2.4; }
.panel img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.panel:hover img{ transform:scale(1.05); }
.panel-shade{ position:absolute; inset:0; background:linear-gradient(to top,rgba(23,24,26,.94),rgba(23,24,26,.25) 65%); }
.panel-body{ position:relative; display:flex; flex-direction:column; gap:.6rem; padding:1.75rem; }
.panel-title{ font-size:1.9rem; font-weight:600; line-height:1.1; }
.panel-text{ max-width:26rem; color:rgba(255,255,255,.82); max-height:0; opacity:0; overflow:hidden; transition:max-height .6s var(--ease),opacity .5s .1s; }
.panel:hover .panel-text,.panel:focus-visible .panel-text{ max-height:12rem; opacity:1; }
@media (max-width:900px){
  .panels{ flex-direction:column; height:auto; }
  .panel{ min-height:20rem; flex:none; }
  .panel-text{ max-height:none; opacity:1; }
}
@media (hover:none){ .panel-text{ max-height:none; opacity:1; } }

/* trades list */
.trades{ border-top:1px solid var(--stone); }
.trade-row{ display:flex; align-items:center; gap:1.25rem; padding:1.35rem .25rem; border-bottom:1px solid var(--stone); transition:padding .3s var(--ease),background .3s; }
.trade-row:hover,.trade-row:focus-visible{ padding-inline:1rem; background:var(--bone); }
.trade-copy{ flex:1; display:block; }
.trade-title{ display:block; font-size:1.3rem; font-weight:600; line-height:1.3; }
.trade-text{ display:block; margin-top:.2rem; color:var(--muted); font-size:1rem; line-height:1.6; }
.trade-arrow{ color:var(--copper); opacity:0; transform:translateX(-.5rem); transition:opacity .3s,transform .3s var(--ease); }
[dir="rtl"] .trade-arrow{ transform:translateX(.5rem) scaleX(-1); }
.trade-row:hover .trade-arrow,.trade-row:focus-visible .trade-arrow{ opacity:1; transform:none; }
[dir="rtl"] .trade-row:hover .trade-arrow,[dir="rtl"] .trade-row:focus-visible .trade-arrow{ transform:scaleX(-1); }
.trade-preview{ position:sticky; top:calc(var(--header-h) + 2rem); aspect-ratio:4/5; overflow:hidden; background:var(--graphite); }
.trade-preview img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .5s var(--ease); }
.trade-preview img.is-active{ opacity:1; }

/* work rail */
.round-btn{ display:grid; place-items:center; width:3rem; height:3rem; border:1.5px solid var(--ink); border-radius:50%; transition:background .2s,color .2s; }
.round-btn:hover{ background:var(--ink); color:#fff; }
.rail{ display:flex; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-inline:max(var(--gutter),calc((100vw - var(--wrap))/2)); scroll-padding-inline:max(var(--gutter),calc((100vw - var(--wrap))/2)); scrollbar-width:none; }
.rail::-webkit-scrollbar{ display:none; }
.rail-card{ position:relative; flex:none; scroll-snap-align:start; width:min(82vw,30rem); height:min(70vw,26rem); overflow:hidden; background:var(--graphite); }
.rail-card img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.rail-card:hover img{ transform:scale(1.04); }
.tag{ position:absolute; inset-block-end:.75rem; inset-inline-start:.75rem; padding:.25rem .65rem; background:rgba(23,24,26,.82); color:#fff; font-size:.85rem; font-weight:500; line-height:1.4; }

/* values / why / process */
.values{ display:grid; gap:2.5rem 2rem; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); }
.value{ border-top:2px solid var(--ink); padding-top:1.5rem; }
.why{ display:grid; gap:2.5rem 3rem; grid-template-columns:repeat(auto-fit,minmax(18rem,1fr)); }
.why li{ display:flex; gap:1rem; }
.why li svg{ margin-top:.3rem; }
.process{ display:grid; gap:2rem; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); counter-reset:s; }
.process li{ position:relative; padding-top:1.25rem; border-top:2px solid var(--stone); }
.step-no{ display:inline-grid; place-items:center; width:2.6rem; height:2.6rem; border-radius:50%; background:var(--copper); color:#fff; font-weight:600; margin-top:-2.55rem; }
.company{ border-top:1px solid var(--stone); padding-top:2rem; }
.partners{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1.25rem 2.5rem; }
.partners li{ display:grid; place-items:center; height:5.5rem; }
.partners img{ max-height:4.5rem; width:auto; max-width:10rem; object-fit:contain; filter:grayscale(1); opacity:.75; transition:filter .3s,opacity .3s; mix-blend-mode:multiply; }
.partners img:hover{ filter:none; opacity:1; }

/* cta */
.cta{ position:relative; overflow:hidden; color:#fff; background:var(--ink); }
.cta-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cta-shade{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(23,24,26,.94),rgba(23,24,26,.7)); }
[dir="rtl"] .cta-shade{ background:linear-gradient(270deg,rgba(23,24,26,.94),rgba(23,24,26,.7)); }
.cta-inner{ position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem; padding-block:clamp(3.5rem,7vw,5.5rem); }

/* inner page hero */
.page-hero{ position:relative; overflow:hidden; background:var(--ink); color:#fff; min-height:26rem; display:flex; align-items:flex-end; }
.page-hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero-shade{ position:absolute; inset:0; background:linear-gradient(to top,rgba(23,24,26,.9),rgba(23,24,26,.55)); }
.page-hero-house{ position:absolute; inset-inline-end:var(--gutter); bottom:-1.5rem; width:min(34vw,360px); opacity:.35; pointer-events:none; }
.page-hero-inner{ position:relative; padding-block:calc(var(--header-h) + 4rem) 3.5rem; }
.page-title{ font-size:clamp(2.4rem,6vw,4.4rem); line-height:1.1; letter-spacing:-.025em; }
html[lang="ar"] .page-title{ line-height:1.35; letter-spacing:0; }
@media (max-width:640px){ .page-hero-house{ display:none; } }

/* about */
.prose-block p{ max-width:60ch; color:#3a3a3e; }
.prose-block p+p{ margin-top:1.1rem; }
.mosaic{ position:relative; padding-bottom:4rem; }
.mosaic-a{ width:82%; aspect-ratio:4/3; object-fit:cover; }
.mosaic-b{ position:absolute; bottom:0; inset-inline-end:0; width:58%; aspect-ratio:4/3; object-fit:cover; border:8px solid var(--paper); }

/* services */
.disciplines{ display:grid; gap:clamp(3.5rem,7vw,6rem); }
.discipline{ display:grid; gap:2rem 4rem; align-items:center; grid-template-columns:1fr; }
.discipline img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
@media (min-width:900px){ .discipline{ grid-template-columns:1fr 1fr; } .discipline.is-flipped img{ order:2; } }
.points{ display:grid; gap:.7rem; }
.points li{ display:flex; gap:.75rem; align-items:flex-start; }
.points svg{ margin-top:.3rem; }
.trade-cards{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill,minmax(17rem,1fr)); }
.trade-card{ background:#fff; }
.trade-card img{ width:100%; aspect-ratio:3/2; object-fit:cover; }

/* projects gallery */
.filters{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; }
.chip{ padding:.55rem 1.1rem; border:1.5px solid var(--stone); font-weight:500; font-size:1rem; transition:background .2s,color .2s,border-color .2s; }
.chip:hover{ border-color:var(--ink); }
.chip[aria-pressed="true"]{ background:var(--ink); color:#fff; border-color:var(--ink); }
.count{ margin-inline-start:auto; color:var(--muted); font-size:.95rem; }
.gallery{ column-count:1; column-gap:1rem; }
@media (min-width:560px){ .gallery{ column-count:2; } }
@media (min-width:900px){ .gallery{ column-count:3; } }
@media (min-width:1200px){ .gallery{ column-count:4; } }
.tile{ break-inside:avoid; margin:0 0 1rem; }
.tile[hidden]{ display:none; }
.tile-btn{ position:relative; display:block; width:100%; overflow:hidden; background:var(--bone); cursor:zoom-in; }
.tile-btn img{ display:block; width:100%; height:auto; transition:transform .7s var(--ease); }
.tile-btn:hover img{ transform:scale(1.04); }
.lightbox{ position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:rgba(12,12,13,.96); color:#fff; }
.lightbox:not([open]){ display:none; }
.lightbox[open]{ display:grid; place-items:center; animation:fade .25s forwards; }
.lightbox::backdrop{ background:transparent; }
.lb-fig{ margin:0; display:grid; gap:.75rem; justify-items:center; max-width:min(94vw,1500px); }
.lb-fig img{ max-width:100%; max-height:82dvh; width:auto; height:auto; object-fit:contain; }
.lb-fig figcaption{ color:rgba(255,255,255,.75); font-size:.95rem; }
.lb-btn{ position:absolute; display:grid; place-items:center; width:3rem; height:3rem; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; transition:background .2s; }
.lb-btn:hover{ background:rgba(255,255,255,.3); }
.lb-close{ top:1rem; inset-inline-end:1rem; }
.lb-prev{ top:50%; inset-inline-start:1rem; transform:translateY(-50%); }
.lb-next{ top:50%; inset-inline-end:1rem; transform:translateY(-50%); }

/* contact */
.contact-list{ display:grid; gap:1.5rem; }
.contact-list li{ display:flex; gap:1rem; }
.contact-list svg{ color:var(--copper); flex:none; margin-top:.15rem; }
.contact-list .k{ font-weight:600; }
.contact-list p{ color:var(--muted); }
.contact-list a:hover{ color:var(--copper); }
.field label{ display:block; margin-bottom:.4rem; font-weight:600; font-size:.98rem; }
.field input,.field select,.field textarea{ width:100%; padding:.8rem .9rem; background:#fff; border:1.5px solid var(--stone); border-radius:2px; font:inherit; color:var(--ink); transition:border-color .2s,box-shadow .2s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--copper); box-shadow:0 0 0 3px rgba(169,80,63,.18); }
.field [aria-invalid="true"]{ border-color:#B3261E; }
.err{ margin-top:.35rem; color:#B3261E; font-size:.92rem; }
.hp{ position:absolute; inset-inline-start:-9999px; width:1px; height:1px; overflow:hidden; }
.notice{ display:flex; gap:1rem; padding:1.25rem 1.5rem; border-inline-start:4px solid; }
.notice-ok{ background:#EAF3EC; border-color:#2F6B3F; color:#1E4A2B; }
.notice-err{ background:#FBECEB; border-color:#B3261E; color:#7A1712; }
.map{ position:relative; }
.map-open{ position:absolute; z-index:2; top:1rem; inset-inline-start:1rem; box-shadow:0 6px 18px rgba(0,0,0,.25); }
.map iframe{ display:block; width:100%; height:26rem; border:0; filter:grayscale(.3); }

/* footer */
.site-footer{ background:var(--ink); color:#fff; padding-top:clamp(3.5rem,7vw,5.5rem); }
.footer-grid{ display:grid; gap:2.5rem 3rem; grid-template-columns:1fr; }
@media (min-width:768px){ .footer-grid{ grid-template-columns:1.3fr .7fr 1.2fr; } }
.footer-h{ font-family:var(--f-display); font-weight:600; font-size:1.1rem; color:var(--gold); }
.footer-link{ color:rgba(255,255,255,.8); transition:color .2s; }
.footer-link:hover{ color:#fff; text-decoration:underline; text-underline-offset:4px; }
.social{ display:grid; place-items:center; width:2.6rem; height:2.6rem; border:1.5px solid rgba(255,255,255,.3); border-radius:50%; transition:background .2s,color .2s; }
.social:hover{ background:#fff; color:var(--ink); }
.footer-base{ margin-top:3.5rem; padding-block:1.5rem; border-top:1px solid rgba(255,255,255,.12); font-size:.92rem; color:rgba(255,255,255,.55); }
.float-actions{ position:fixed; z-index:40; bottom:1.25rem; inset-inline-start:1.25rem; display:flex; flex-direction:column; gap:.85rem; }
.float-btn{ position:relative; display:grid; place-items:center; width:4.5rem; height:4.5rem; border-radius:50%; color:#fff; box-shadow:0 10px 28px rgba(0,0,0,.3); transition:transform .25s var(--ease),box-shadow .25s; }
.float-btn:hover{ transform:scale(1.08); box-shadow:0 14px 34px rgba(0,0,0,.36); }
.float-ico{ width:2.4rem; height:2.4rem; }
.float-wa{ background:#1FA855; }
.float-call{ background:var(--copper); width:4rem; height:4rem; margin-inline-start:.25rem; }
.float-call .float-ico{ width:2rem; height:2rem; }
.float-wa::after{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #1FA855; animation:ping 2.4s var(--ease) infinite; }
@keyframes ping{ 0%{ transform:scale(1); opacity:.7; } 80%,100%{ transform:scale(1.5); opacity:0; } }
@media (max-width:640px){ .float-btn{ width:4rem; height:4rem; } .float-call{ width:3.5rem; height:3.5rem; margin-inline-start:.25rem; } .float-ico{ width:2.1rem; height:2.1rem; } .float-call .float-ico{ width:1.8rem; height:1.8rem; } }

/* motion preferences */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-delay:0s !important; transition-duration:.01ms !important; }
  .house.is-drawing path{ stroke-dashoffset:0; }
  .hero-title .line>span{ transform:none; }
  .hero-sub,.hero-actions{ opacity:1; }
}
