/* SOMMA — shared stylesheet. Each section sets its palette via body[data-theme].
   Breakpoints: 360 (small phones) · 520/600 (phones) · 760 · 900 (tablet portrait) · 1180 (tablet landscape / small laptop) · 1600+ (large) · 2200+ (ultrawide) */
:root{
  --bg:#E9E4DD; --soft:#F4EFE8; --card:#FBF8F4;
  --ink:#221F1C; --slate:#5B544D;
  --fg:#E8603A; --a2:#F08764; --tint:rgba(240,135,100,.22);
  --line:rgba(34,31,28,.13);
  --on-accent:#221F1C;
  --serif:'Montserrat',system-ui,sans-serif; --sans:'Source Sans 3',system-ui,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --gut:clamp(16px,5vw,64px);
  --pad:clamp(3.5rem,8vw,7rem);
  --maxw:1320px;
  --nav-bg:rgba(233,228,221,.9);
}
body[data-theme="print"]{--bg:#F3EEE7;--soft:#EADFD6;--card:#FFFDFB;--tint:rgba(234,202,187,.7);--nav-bg:rgba(243,238,231,.92)}
body[data-theme="consulting"]{--bg:#0E0D0C;--soft:#171513;--card:#1C1916;--ink:#F3EBDD;--slate:#BDB09E;--fg:#E0A04A;--a2:#D98C3A;--tint:rgba(224,160,74,.12);--line:rgba(243,235,221,.14);--on-accent:#0E0D0C;--nav-bg:rgba(14,13,12,.9)}
body[data-theme="vet"]{--bg:#F2F8FC;--soft:#E1F0FA;--card:#FFFFFF;--ink:#1F2A33;--slate:#4E5D68;--fg:#E0683F;--a2:#7FC3EA;--tint:rgba(159,211,242,.45);--line:rgba(31,42,51,.12);--nav-bg:rgba(242,248,252,.92)}
body[data-theme="realestate"]{--bg:#E7E7E5;--soft:#DADAD7;--card:#F5F5F3;--ink:#2B2D31;--slate:#55585E;--fg:#17799A;--a2:#8A8D93;--tint:rgba(27,134,166,.14);--line:rgba(43,45,49,.14);--on-accent:#fff;--nav-bg:rgba(231,231,229,.92)}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:80px}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:clamp(16px,.35vw + 15px,18px);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}
body.no-scroll{overflow:hidden}
h1,h2,h3,h4,.h2{font-family:var(--serif);font-weight:300;line-height:1.14;letter-spacing:.005em;overflow-wrap:break-word}
h1{font-size:clamp(2rem,5.2vw,4.6rem)} h2,.h2{font-size:clamp(1.65rem,3.4vw,3rem)} h3{font-size:clamp(1.05rem,1.2vw,1.25rem);font-weight:400}
img,svg,picture{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}
.narrow{max-width:900px}
section{padding:var(--pad) 0}
::selection{background:var(--fg);color:#fff}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--bg);padding:10px 16px;z-index:200}
.skip:focus{top:12px}

.kicker{font-family:var(--serif);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fg);font-weight:500;display:flex;align-items:center;gap:14px;margin-bottom:1.1rem}
.kicker::before{content:"";width:34px;height:1px;background:currentColor;flex:none}
.lead{font-size:clamp(1.02rem,1.3vw,1.22rem);color:var(--slate);max-width:62ch}
.muted{color:var(--slate)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--serif);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding:14px 26px;border:1px solid var(--ink);min-height:48px;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);text-align:center;line-height:1.3}
.btn.solid{background:var(--fg);border-color:var(--fg);color:var(--on-accent)}
.btn.light{border-color:rgba(255,255,255,.75);color:#fff}
@media (hover:hover){
  .btn:hover{background:var(--ink);color:var(--bg)}
  .btn.solid:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
  .btn.light:hover{background:#fff;color:#221F1C}
}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem}
@media(max-width:600px){.btn-row .btn{flex:1 1 100%}}

/* ---------- header / nav ---------- */
header.top{position:sticky;top:0;z-index:60;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:var(--maxw);margin:0 auto;padding:8px max(var(--gut),env(safe-area-inset-right)) 8px max(var(--gut),env(safe-area-inset-left));min-height:64px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand img{height:44px;width:auto}
.brand .sub{font-family:var(--serif);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;border-left:1px solid var(--line);padding-left:12px;color:var(--fg);font-weight:600;white-space:nowrap}
.links{display:flex;align-items:center;gap:clamp(14px,1.8vw,28px);font-family:var(--serif);font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;font-weight:500}
.links>a{padding:10px 0;position:relative;white-space:nowrap}
.links>a::after{content:"";position:absolute;left:0;bottom:4px;height:1px;width:0;background:var(--fg);transition:width .3s var(--ease)}
.links>a:hover::after,.links>a[aria-current="page"]::after{width:100%}
.drop{position:relative}
.drop>button{font-family:var(--serif);font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;font-weight:500;padding:10px 0;display:flex;gap:6px;align-items:center;min-height:44px}
.drop-menu{position:absolute;top:100%;right:-12px;min-width:270px;background:var(--card);border:1px solid var(--line);padding:8px;display:none;box-shadow:0 18px 40px rgba(0,0,0,.14)}
.drop.open .drop-menu{display:block}
@media (hover:hover){.drop:hover .drop-menu{display:block}}
.drop-menu a{display:block;padding:12px 14px;text-transform:none;letter-spacing:.02em;font-size:.88rem}
.drop-menu a small{display:block;color:var(--slate);font-family:var(--sans);font-size:.8rem}
.drop-menu a:hover{background:var(--tint)}
.tools{display:flex;align-items:center;gap:10px;flex:none}
.lang{display:flex;border:1px solid var(--line)}
.lang a{padding:0 12px;font-family:var(--serif);font-size:.68rem;letter-spacing:.1em;min-height:40px;min-width:40px;display:flex;align-items:center;justify-content:center}
.lang a.on{background:var(--ink);color:var(--bg)}
.login-btn{padding:10px 18px;min-height:40px;font-size:.68rem}
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger span{width:22px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.drawer{display:none}
@media(max-width:1180px){
  .links,.tools .login-btn{display:none}
  .burger{display:flex}
  .drawer.open{display:flex;flex-direction:column;position:fixed;inset:0;background:var(--bg);z-index:55;padding:calc(96px + env(safe-area-inset-top)) max(var(--gut),env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(var(--gut),env(safe-area-inset-left));overflow-y:auto;overscroll-behavior:contain}
  .drawer a{font-family:var(--serif);font-size:clamp(1.1rem,4vw,1.4rem);padding:14px 0;border-bottom:1px solid var(--line)}
  .drawer a[aria-current="page"]{color:var(--fg)}
  .drawer .dlabel{font-family:var(--serif);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg);margin-top:22px;padding-bottom:4px}
  .drawer a.subl{font-size:1rem;color:var(--slate)}
  .drawer .btn{margin-top:26px;font-size:.76rem;color:var(--on-accent)}
}
@media(max-width:600px){.brand img{height:38px}.brand .sub{display:none}.nav-in{min-height:58px}}
@media(max-width:360px){.lang a{padding:0 9px;min-width:36px}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:clamp(540px,86svh,900px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;padding:0}
.hero .media{position:absolute;inset:0}
.hero .media picture,.hero .media img{width:100%;height:100%;object-fit:cover}
.hero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,14,11,.85),rgba(18,14,11,.35) 60%,rgba(18,14,11,.18))}
.hero .wrap{position:relative;padding-top:clamp(5rem,12vh,8rem);padding-bottom:clamp(2.5rem,9vh,6rem);width:100%}
.hero .kicker{color:#F7B79E}
.hero h1{max-width:17ch;margin-bottom:1.2rem}
.hero p{max-width:56ch;font-size:clamp(1rem,1.3vw,1.15rem);color:rgba(255,255,255,.9)}
@media (orientation:landscape) and (max-height:520px){.hero{min-height:100svh}.hero h1{font-size:clamp(1.8rem,4vw,2.6rem)}}
.shero{padding:clamp(2.5rem,7vw,6rem) 0}
.shero .grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.logo-lg{width:100%;max-width:560px;justify-self:center}
.pill-note,.zone{display:inline-block;margin-top:1.4rem;padding:10px 16px;border-radius:99px;background:var(--tint);font-size:.95rem}
.zone{border:1px solid var(--line);border-radius:14px}
@media(max-width:900px){.shero .grid{grid-template-columns:1fr}.logo-lg{max-width:420px;order:-1}}
@media(max-width:600px){.logo-lg{max-width:300px}}

/* ---------- grids & cards ---------- */
.head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:end;margin-bottom:clamp(2rem,4vw,3rem)}
@media(max-width:900px){.head{grid-template-columns:1fr;gap:1rem}}
.cards{display:grid;gap:clamp(14px,1.6vw,20px);grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.card{background:var(--card);border:1px solid var(--line);padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;gap:12px;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
@media (hover:hover){.card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.08)}}
.card .num{font-family:var(--serif);font-size:.72rem;letter-spacing:.2em;color:var(--fg);text-transform:uppercase}
.card p{color:var(--slate);font-size:.98rem}
.card .more,.pillar .more{margin-top:auto;font-family:var(--serif);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg);font-weight:500}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags span{font-size:.78rem;padding:4px 10px;border:1px solid var(--line);border-radius:99px;color:var(--slate)}
.partners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.pcard{border-top:4px solid var(--pc)}
.pcard .num{color:var(--pc)}
.pcard img{height:52px;width:auto;align-self:flex-start}
@media(max-width:760px){.partners{grid-template-columns:1fr}}

.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line)}
.pillar{padding:clamp(24px,2.4vw,34px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:14px;min-height:320px;transition:background .35s var(--ease)}
.pillar:last-child{border-right:0}
@media (hover:hover){.pillar:hover{background:var(--card)}}
.pillar img{height:58px;width:auto;align-self:flex-start}
.pillar .duo{display:flex;gap:8px;flex-wrap:wrap}.pillar .duo img{height:44px}
.pillar p{color:var(--slate);font-size:.96rem}
.pillar.dark{background:#0E0D0C;color:#F3EBDD}.pillar.dark p{color:#BDB09E}.pillar.dark .more{color:#E0A04A}
@media(max-width:1100px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}.pillar:nth-child(2){border-right:0}.pillar:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:600px){.pillars{grid-template-columns:1fr}.pillar{border-right:0;border-bottom:1px solid var(--line);min-height:0}.pillar:last-child{border-bottom:0}}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(8px,1.2vw,14px)}
.gallery figure{position:relative;overflow:hidden;background:#111}
.gallery picture,.gallery img{width:100%;height:100%;object-fit:cover}
.gallery img{transition:transform .8s var(--ease)}
@media (hover:hover){.gallery figure:hover img{transform:scale(1.04)}}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:clamp(12px,1.6vw,18px);color:#fff;background:linear-gradient(to top,rgba(0,0,0,.75),transparent)}
.gallery figcaption small{font-family:var(--serif);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:#F7B79E}
.gallery figcaption b{display:block;font-weight:400;font-family:var(--serif);font-size:clamp(.85rem,1.1vw,1rem)}
.g1{grid-column:span 7;aspect-ratio:7/5}.g2{grid-column:span 5;aspect-ratio:1}.g3{grid-column:span 4;aspect-ratio:1}
@media(max-width:900px){.g1,.g2{grid-column:span 12;aspect-ratio:16/10}.g3{grid-column:span 6;aspect-ratio:1}}
@media(max-width:520px){.gallery figure{grid-column:span 12!important;aspect-ratio:4/3!important}}

/* ---------- bands / split ---------- */
.band{background:var(--soft)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.split-img picture,.split-img img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media(max-width:900px){.split{grid-template-columns:1fr}.split-img picture,.split-img img{aspect-ratio:16/10}}
.list{list-style:none;display:grid;gap:10px;margin-top:1.4rem}
.list li{padding-left:26px;position:relative;color:var(--slate)}
.list li::before{content:"";position:absolute;left:0;top:.8em;width:14px;height:1px;background:var(--fg)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);counter-reset:s}
.steps.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.steps div{border-top:1px solid var(--fg);padding-top:18px}
.steps div::before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);color:var(--fg);font-size:.8rem;letter-spacing:.2em;display:block;margin-bottom:10px}
.steps h3{margin-bottom:6px}
.steps p{color:var(--slate)}
@media(max-width:1000px){.steps.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.steps,.steps.four{grid-template-columns:1fr}}

/* ---------- 3D gadgets ---------- */
.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.option{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:12px}
.option .ico{font-size:2rem;line-height:1}
.option p{color:var(--slate)}
.option .btn{margin-top:auto;align-self:flex-start}
@media(max-width:760px){.options{grid-template-columns:1fr}.option .btn{align-self:stretch}}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.filters button{padding:9px 16px;border:1px solid var(--line);border-radius:99px;font-size:.9rem;min-height:44px;background:var(--card)}
.filters button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
@media(max-width:600px){.filters{flex-wrap:nowrap;overflow-x:auto;margin-left:calc(-1*var(--gut));margin-right:calc(-1*var(--gut));padding:0 var(--gut) 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.filters::-webkit-scrollbar{display:none}.filters button{flex:none}}
.models{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:clamp(12px,1.5vw,18px)}
@media(max-width:520px){.models{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:340px){.models{grid-template-columns:1fr}}
.model{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.model .thumb{aspect-ratio:1;background:var(--tint);display:grid;place-items:center;position:relative;color:var(--ink)}
.model .thumb svg{width:56%;height:56%}
.model .badge{position:absolute;top:10px;left:10px;font-family:var(--serif);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--bg);padding:5px 9px;border-radius:99px}
.model .badge.free{background:var(--fg);color:#221F1C}
.model .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.model h3{font-size:clamp(.9rem,1vw,1rem)}
.model .meta{font-size:.8rem;color:var(--slate)}
.model .acts,.model .dl{margin-top:auto;padding-top:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between}
.mini,.model .dl button{font-family:var(--serif);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:9px 12px;border:1px solid var(--ink);border-radius:99px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;flex:1 1 auto;text-align:center}
.mini.solid{background:var(--ink);color:var(--bg)}
.model .dl span{font-family:var(--serif);font-size:.62rem;letter-spacing:.12em}
.model .dl button[disabled]{opacity:.45;cursor:not-allowed}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.plan{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:clamp(24px,2.6vw,32px);display:flex;flex-direction:column;gap:14px;position:relative}
.plan.hot{border:2px solid var(--fg)}
.plan .flag{position:absolute;top:-13px;left:24px;background:var(--fg);color:#221F1C;font-family:var(--serif);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;border-radius:99px}
.plan .price{font-family:var(--serif);font-size:clamp(2.1rem,3vw,2.6rem);font-weight:300}
.plan .price small{font-size:.9rem;color:var(--slate)}
.plan .btn{margin-top:auto}
@media(max-width:900px){.plans{grid-template-columns:1fr;max-width:560px}}
.note{font-size:.88rem;color:var(--slate);margin-top:14px;max-width:80ch}
.waitlist{max-width:560px;margin-top:12px}
.villa-wrap{display:grid;place-items:center}
.villa-svg{width:100%;max-width:520px;height:auto}
@media(max-width:900px){.teaser .villa-wrap{order:-1}.villa-svg{max-width:360px}}

/* ---------- faq ---------- */
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{cursor:pointer;font-family:var(--serif);font-size:clamp(.98rem,1.2vw,1.05rem);list-style:none;display:flex;justify-content:space-between;gap:20px;min-height:32px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--fg);font-size:1.3rem;line-height:1;flex:none}
details[open] summary::after{content:"–"}
details p{color:var(--slate);margin-top:10px;max-width:70ch}

/* ---------- forms ---------- */
.center-sec{min-height:calc(100svh - 64px);display:grid;place-items:center}
.center{display:grid;place-items:center}
.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,4vw,44px);max-width:520px;width:100%}
label{display:block;font-family:var(--serif);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-weight:500}
input[type=email],input[type=text]{width:100%;padding:14px 16px;border:1px solid var(--line);background:var(--bg);border-radius:10px;font-size:16px;min-height:50px}
.form-row{display:flex;gap:10px;flex-wrap:wrap}.form-row input{flex:1 1 220px}
@media(max-width:600px){.form-row .btn{flex:1 1 100%}}
.msg{margin-top:14px;padding:14px 16px;border-radius:10px;background:var(--tint);font-size:.95rem;display:none}
.msg.show{display:block}
.demo-flag{display:inline-block;font-family:var(--serif);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;border:1px dashed var(--fg);color:var(--fg);border-radius:99px}
.lib-head{align-items:center}
.lib-actions{justify-content:flex-end;margin:0}
@media(max-width:900px){.lib-actions{justify-content:flex-start}}

/* ---------- partner profile ---------- */
.profile{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.avatar{aspect-ratio:4/5;background:var(--soft);border:1px solid var(--line);display:grid;place-items:center;position:relative;overflow:hidden}
.band .avatar{background:var(--bg)}
.avatar .mono{font-family:var(--serif);font-size:clamp(4rem,10vw,7rem);font-weight:300;color:var(--fg)}
.avatar .cap{position:absolute;bottom:0;left:0;right:0;padding:14px 18px;font-size:.82rem;color:var(--slate);border-top:1px solid var(--line);background:var(--card)}
@media(max-width:900px){.profile{grid-template-columns:1fr}.avatar{aspect-ratio:16/9;max-height:320px}}
.chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;margin-top:1.6rem}
.chip{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}
.chip b{font-family:var(--serif);font-weight:500;display:block;margin-bottom:4px;font-size:.95rem}
.chip span{color:var(--slate);font-size:.9rem}
.bb-art{aspect-ratio:1;max-width:520px;width:100%;justify-self:center;background:radial-gradient(circle at 30% 30%,#fff 0,#E1F0FA 45%,#9FD3F2 100%);display:grid;place-items:center;border-radius:24px;border:1px solid var(--line);text-align:center}
.bb-art .emoji{font-size:clamp(3.5rem,10vw,7rem)}
.bb-art .bb-name{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;margin-top:10px;color:#E0683F}
@media(max-width:900px){.bb-art{aspect-ratio:16/9}}

/* consulting track record */
.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.case{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column}
.case picture,.case img{width:100%;aspect-ratio:16/10;object-fit:cover}
.case-body{padding:clamp(20px,2.6vw,28px);display:flex;flex-direction:column;gap:10px}
.case-body .num{font-family:var(--serif);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg)}
.case-body h3{font-size:clamp(1.25rem,1.8vw,1.5rem);font-weight:300}
.case-body p{color:var(--slate)}
@media(max-width:760px){.cases{grid-template-columns:1fr}}

/* ---------- cta ---------- */
.cta{background:var(--ink);color:var(--bg);text-align:center}
.cta .lead{color:inherit;opacity:.82;margin:1rem auto 0}
.cta .btn-row{justify-content:center}
.cta .btn{border-color:currentColor}
@media (hover:hover){.cta .btn:hover{background:var(--bg);color:var(--ink)}}
.cta .btn.solid{color:var(--on-accent);border-color:var(--fg)}
body[data-theme="consulting"] .cta{background:#E0A04A;color:#0E0D0C}
body[data-theme="consulting"] .cta .btn.solid{background:#0E0D0C;border-color:#0E0D0C;color:#E0A04A}

/* ---------- footer ---------- */
footer{background:#1A1816;color:#D9D2C8;padding:4rem 0 calc(2rem + env(safe-area-inset-bottom));font-size:.95rem}
footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2.5rem}
footer .fh{font-family:var(--serif);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#F7B79E;margin-bottom:14px;font-weight:500}
footer a{display:block;padding:6px 0;color:#D9D2C8}
footer a:hover{color:#fff}
footer img{height:56px;width:auto;margin-bottom:14px}
footer .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding-top:1.4rem;font-size:.8rem;color:#A59D93}
@media(max-width:900px){footer .cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){footer .cols{grid-template-columns:1fr;gap:1.8rem}}

.preview-bar{background:#221F1C;color:#F4EFE8;text-align:center;font-size:.78rem;padding:6px 12px;letter-spacing:.04em}
.preview-bar b{color:#F7B79E;font-weight:600}
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
@media print{header.top,.drawer,.preview-bar,.cta,footer{display:none}.rv{opacity:1;transform:none}}

/* ---------- large & ultrawide screens ---------- */
@media(min-width:1600px){:root{--maxw:1480px}.brand img{height:50px}.links,.drop>button{font-size:.76rem}}
@media(min-width:2200px){:root{--maxw:1720px}body{font-size:19px}h1{font-size:5.2rem}}
.center-sec>.wrap{width:100%}.center>*{max-width:100%}

/* ================= testimonials & projects ================= */
.stars{color:#E0A04A;letter-spacing:2px;font-size:1.05rem}
a.inline{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.testimonials{background:var(--soft)}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px}
.quote{background:var(--card);border:1px solid var(--line);padding:clamp(22px,2.6vw,30px);display:flex;flex-direction:column;gap:12px;margin:0}
.quote blockquote{font-family:var(--serif);font-weight:300;font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.5}
.quote figcaption{margin-top:auto;font-size:.9rem;color:var(--slate);display:flex;flex-direction:column}
.quote figcaption b{color:var(--ink);font-weight:600}
.pad-top-0{padding-top:clamp(2rem,4vw,3rem)}
.projects{display:grid;gap:clamp(2.5rem,5vw,4.5rem)}
.proj{border-top:1px solid var(--line);padding-top:clamp(1.6rem,3vw,2.4rem)}
.proj-head{max-width:820px;margin-bottom:1.4rem}
.proj-head h2{margin-bottom:.6rem}
.ptabs{display:inline-flex;border:1px solid var(--line);border-radius:99px;padding:4px;margin-bottom:16px;background:var(--card)}
.ptabs button{padding:9px 18px;border-radius:99px;font-family:var(--serif);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;min-height:40px}
.ptabs button.on{background:var(--ink);color:var(--bg)}
.pgal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pimg{display:block;padding:0;overflow:hidden;background:#EAE3DA;aspect-ratio:4/3;cursor:zoom-in;grid-column:span 1}
.pimg img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
@media (hover:hover){.pimg:hover img{transform:scale(1.04)}}
.pgal.n1 .pimg{grid-column:1/-1;aspect-ratio:16/8}
.pgal.n2 .pimg{grid-column:span 2}
.pgal.n3 .pimg,.pgal.n4 .pimg.big,.pgal.nm .pimg.big{grid-column:span 2}
.pgal.n3 .pimg.big,.pgal.n4 .pimg.big,.pgal.nm .pimg.big{grid-row:span 2;aspect-ratio:auto}
@media(max-width:760px){.pgal{grid-template-columns:repeat(2,minmax(0,1fr))}.pgal .pimg{grid-column:span 1!important;grid-row:auto!important;aspect-ratio:4/3!important}.pgal .pimg.big,.pgal.n1 .pimg{grid-column:1/-1!important}}
.previews{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;margin-top:18px}
.empty{padding:20px 0}
.lbox{position:fixed;inset:0;z-index:100;background:rgba(10,9,8,.94);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}
.lbox[hidden]{display:none}
.lbox img{max-width:min(1400px,100%);max-height:88vh;width:auto;height:auto;object-fit:contain}
.lbox button{position:absolute;color:#fff;font-size:2.4rem;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.08)}
.lb-x{top:max(12px,env(safe-area-inset-top));right:12px}.lb-p{left:12px;top:50%;transform:translateY(-50%)}.lb-n{right:12px;top:50%;transform:translateY(-50%)}
@media(max-width:600px){.lb-p,.lb-n{top:auto;bottom:max(16px,env(safe-area-inset-bottom));transform:none}}

/* ================= review form ================= */
.panel.wide{max-width:760px;width:100%}
.field{margin-bottom:18px;border:0}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{width:100%;padding:13px 15px;border:1px solid var(--line);background:var(--bg);border-radius:10px;font-size:16px;min-height:48px}
.field textarea{resize:vertical;min-height:110px}
legend{font-family:var(--serif);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-weight:500}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
@media(max-width:600px){.grid2{grid-template-columns:1fr}}
.rate{display:inline-flex;flex-direction:row-reverse;gap:4px}
.rate input{position:absolute;opacity:0;width:1px;height:1px}
.rate label{font-size:2.3rem;line-height:1;color:#D8CFC4;cursor:pointer;padding:2px;margin:0;letter-spacing:0;text-transform:none;min-width:44px;min-height:44px;display:grid;place-items:center}
.rate input:checked~label,.rate label:hover,.rate label:hover~label{color:#E0A04A}
.rate input:focus-visible+label{outline:2px solid var(--fg);border-radius:6px}
.consent{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:18px}
.check{display:flex;gap:12px;align-items:flex-start;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.98rem;font-weight:400;margin:10px 0;cursor:pointer}
.check input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--fg)}
.radios{border:0;padding:4px 0 6px 34px;display:flex;flex-wrap:wrap;gap:6px 18px}
.radios legend{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.88rem;color:var(--slate);margin-bottom:4px}
.radios label{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.95rem;font-weight:400;display:flex;gap:6px;align-items:center;min-height:36px}
.radios:disabled{opacity:.4}
.small{font-size:.86rem}
.hp{position:absolute;left:-9999px}
.projtag{background:var(--tint);padding:10px 14px;border-radius:10px;margin-bottom:18px}

/* ================= admin ================= */
.admin{padding-bottom:4rem}
.atabs{display:flex;gap:6px;flex-wrap:wrap;margin:24px 0}
.atabs button{padding:12px 18px;border:1px solid var(--line);border-radius:99px;font-family:var(--serif);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;min-height:44px;background:var(--card)}
.atabs button.on{background:var(--ink);color:var(--bg)}
.dot{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:99px;background:var(--fg);color:#fff;font-size:.7rem;margin-left:6px;padding:0 5px}
.filters i{font-style:normal;opacity:.6;margin-left:4px}
.alist{display:grid;gap:14px}
.acard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:10px}
.acard blockquote{font-family:var(--serif);font-weight:300;font-size:1.05rem}
.acard select{display:block;margin-top:6px;width:100%;max-width:420px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);text-transform:none;letter-spacing:0;font-family:var(--sans)}
.arow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.st{font-size:.72rem;padding:3px 10px;border-radius:99px;font-family:var(--serif);letter-spacing:.06em}
.st-pending{background:#FCE9C9;color:#7A4B00}.st-approved{background:#D8F0DC;color:#1D5C2A}.st-rejected{background:#F6D6D2;color:#8A2317}.st-feat{background:var(--ink);color:var(--bg)}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badges span{font-size:.78rem;padding:4px 10px;border-radius:99px;border:1px solid var(--line)}
.badges .ok{background:#E6F4E8;border-color:#BFE0C5}.badges .no{background:#FBEAE7;border-color:#F0C8C1}
.aacts{display:flex;flex-wrap:wrap;gap:8px}
.aacts .btn{min-height:40px;padding:9px 14px;font-size:.66rem}
.btn.danger{border-color:#B3261E;color:#B3261E}
@media (hover:hover){.btn.danger:hover{background:#B3261E;color:#fff}}
.prow{grid-template-columns:140px minmax(0,1fr);align-items:start}
.prow img,.prow .noimg{width:140px;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:var(--soft);display:grid;place-items:center;font-size:.8rem;color:var(--slate)}
@media(max-width:520px){.prow{grid-template-columns:1fr}.prow img,.prow .noimg{width:100%}}
.imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:8px 0 12px}
.thumb{position:relative;margin:0;border-radius:8px;overflow:hidden;border:2px solid transparent;background:#111}
.thumb.cover{border-color:var(--fg)}
.thumb img{width:100%;aspect-ratio:1;object-fit:cover}
.tacts{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;background:rgba(0,0,0,.55)}
.tacts button{color:#fff;min-width:30px;min-height:32px;font-size:1rem}
.upl{cursor:pointer;min-height:44px;font-size:.66rem}
.toast{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:99px;z-index:120;font-size:.92rem;max-width:calc(100% - 32px);text-align:center}

/* ================= instagram preview ================= */
.ig-sec{padding-top:0}
.band+.ig-sec,.cta+.ig-sec{padding-top:var(--pad)}
.ig-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:clamp(20px,3vw,34px);display:grid;gap:22px}
.ig-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(14px,2.5vw,28px);align-items:center}
.ig-ava{width:clamp(76px,9vw,104px);aspect-ratio:1;border-radius:50%;padding:3px;background:conic-gradient(from 210deg,#F58529,#DD2A7B,#8134AF,#515BD4,#F58529);display:block}
.ig-ava span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:#fff;border:3px solid #fff;overflow:hidden}
.ig-ava img{width:82%;height:auto}
.ig-handle{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-weight:500;font-size:clamp(1rem,1.4vw,1.2rem)}
.ig-name{font-weight:600;margin:2px 0 6px}
.ig-bio{list-style:none;font-size:.94rem;color:var(--slate);display:grid;gap:2px}
.ig-grid{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;border-radius:12px;overflow:hidden}
.ig-ph{aspect-ratio:1;background:linear-gradient(135deg,var(--tint),var(--soft))}
.ig-ph1,.ig-ph4{background:linear-gradient(135deg,var(--soft),var(--tint))}
.ig-over{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:linear-gradient(to right,transparent,rgba(255,255,255,.35),transparent)}
.ig-posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;align-items:start}
.ig-posts .instagram-media{margin:0!important;min-width:0!important;width:100%!important}
@media(max-width:760px){.ig-top{grid-template-columns:auto minmax(0,1fr)}.ig-follow{grid-column:1/-1}.ig-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
body[data-theme="consulting"] .ig-ava span{background:#0E0D0C;border-color:#0E0D0C}
.apanel{padding:0 0 2rem}
@media(max-width:400px){#refresh{display:none!important}}

/* consulting — client case study */
.case-study{background:#161412;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cs-head{max-width:900px;margin-bottom:clamp(1.8rem,4vw,3rem)}
.cs-head h2{font-size:clamp(2rem,4.4vw,3.6rem);margin-bottom:.8rem}
.cs-facts{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:1.4rem}
.cs-facts li{border:1px solid var(--line);border-radius:99px;padding:6px 14px;font-size:.86rem;color:var(--slate)}
.cs-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1.6rem,4vw,4rem);align-items:start;margin-bottom:clamp(2.4rem,5vw,4rem)}
.cs-intro>div p{color:var(--slate);font-size:clamp(1rem,1.2vw,1.12rem);margin-bottom:1rem;max-width:64ch}
.cs-principles{border-left:2px solid var(--fg);padding:6px 0 6px clamp(18px,2.4vw,30px)}
.cs-big{font-family:var(--serif);font-weight:300;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.3;margin-bottom:1rem}
.cs-principles p:last-child{color:var(--slate)}
.cs-sub{font-family:var(--serif);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg);margin-bottom:1.2rem;font-weight:500}
.cs-scope{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.cs-scope .card p{font-size:.95rem}
.cs-close{margin-top:clamp(2rem,4vw,3rem);font-family:var(--serif);font-weight:300;font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:60ch;color:var(--slate)}
.cs-close b{color:var(--ink);font-weight:400}
@media(max-width:900px){.cs-intro{grid-template-columns:1fr}}

/* team-only content: hidden unless signed in to /admin on this browser */
html:not(.staff):not(.member) [data-staff]{display:none!important}
html:not(.staff):not(.member) .pillars{grid-template-columns:repeat(3,minmax(0,1fr))}
html:not(.staff):not(.member) .pillars .pillar:nth-child(3){border-right:1px solid var(--line)}
@media(max-width:1100px){html:not(.staff):not(.member) .pillars{grid-template-columns:1fr}html:not(.staff):not(.member) .pillars .pillar{border-right:0;border-bottom:1px solid var(--line);min-height:0}html:not(.staff):not(.member) .pillars .pillar:last-child{border-bottom:0}}
.staff-bar{background:#E0A04A;color:#0E0D0C;text-align:center;font-size:.78rem;padding:6px 12px;display:none}
html.staff .staff-bar{display:block}
.staff-bar a{text-decoration:underline;margin-left:8px}
html.staff [data-public],html.member [data-public]{display:none!important}

/* customer accounts */
html.member [data-guest]{display:none!important}
html:not(.member) [data-member-only]{display:none!important}
.login-grid{align-items:start}
.acc-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:clamp(18px,3vw,32px);align-items:start;margin-top:10px}
.acc-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.acc-links .card{min-height:170px}
.upgrade{border:2px solid var(--fg)}
.empty-state{grid-column:1/-1;background:var(--card);border:1px dashed var(--line);border-radius:14px;padding:clamp(22px,4vw,40px);text-align:center}
.empty-state .btn-row{justify-content:center}
.model .thumb img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.acc-grid{grid-template-columns:1fr}}
@media(max-width:520px){.acc-links{grid-template-columns:1fr}}
.ustats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:18px}
.ustats .stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.ustats .stat b{display:block;font-family:var(--serif);font-weight:300;font-size:2rem;line-height:1.1}
.ustats .stat span{font-size:.85rem;color:var(--slate)}
.urow{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.usearch{flex:1 1 220px;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:16px}
@media(max-width:600px){.urow{grid-template-columns:1fr}}
#acc-welcome{margin-bottom:28px}

.model .meta.desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:520px){.model .meta.desc{-webkit-line-clamp:4;font-size:.76rem}.model .body{padding:12px}}

/* ===== Gadget catalog (customer view) ===== */
.cat-hero{padding:clamp(2rem,5vw,3.6rem) 0 clamp(3rem,6vw,5rem)}
.cat-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:22px}
.cat-me{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;display:grid;gap:2px;min-width:210px}
.cat-me small{font-family:var(--serif);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--slate)}
.cat-me b{font-family:var(--serif);font-weight:500;font-size:1.05rem;margin-bottom:6px}
.cat-me a{font-size:.9rem;color:var(--fg)}
.legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.88rem;color:var(--slate);margin-bottom:18px}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.dot-free{background:#9FD3F2}.dot-paid{background:var(--fg)}
.cat-bar{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:20px}
.cat-bar .filters{margin:0}
.filters button i{font-style:normal;opacity:.55;font-size:.8em;margin-left:2px}
.gsearch{flex:0 1 260px;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:99px;background:var(--card);font-size:16px}
.model .badge.free{background:#9FD3F2;color:#12303F}
.model .badge.paid{background:var(--fg);color:#fff}
.gcard .gopen{all:unset;display:flex;flex-direction:column;height:100%;cursor:pointer;width:100%}
.gcard .gopen:focus-visible{outline:2px solid var(--fg);outline-offset:-2px;border-radius:14px}
.gcard .body{gap:4px}
.gcard .gcat{font-family:var(--serif);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fg)}
.gcard .gsub{font-size:.8rem;color:var(--slate)}
.gcard .gmore{margin-top:auto;padding-top:10px;font-family:var(--serif);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
@media (hover:hover){.gcard{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.gcard:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.08)}}
@media(max-width:700px){.cat-top{grid-template-columns:1fr}.cat-me{grid-template-columns:auto 1fr;column-gap:14px;align-items:center}.cat-me small{grid-column:1/-1}.cat-me b{grid-column:1/-1;margin:0 0 4px}
  .cat-bar{flex-direction:column;align-items:stretch}.gsearch{flex:none;width:100%}}

/* detail dialog */
.gdlg{border:0;padding:0;border-radius:20px;width:min(980px,calc(100vw - 32px));max-height:calc(100dvh - 32px);background:var(--card);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.25);overflow:hidden}
.gdlg::backdrop{background:rgba(34,31,28,.55);backdrop-filter:blur(3px)}
.gd-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-height:calc(100dvh - 32px);overflow:auto;position:relative}
.gd-x{position:absolute;top:12px;right:12px;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:1.6rem;line-height:1;cursor:pointer;color:var(--ink)}
.gd-media{background:var(--tint);padding:clamp(16px,2.5vw,28px);display:flex;flex-direction:column;gap:12px}
.gd-main{aspect-ratio:1;border-radius:14px;overflow:hidden;display:grid;place-items:center;background:rgba(255,255,255,.35)}
.gd-main img{width:100%;height:100%;object-fit:cover}
.gd-ico svg{width:46%;height:auto;min-width:120px;color:var(--ink)}
.gd-ico{display:grid;place-items:center;width:100%;height:100%}
.gd-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.gd-thumbs button{width:58px;height:58px;border-radius:10px;overflow:hidden;border:2px solid transparent;padding:0;cursor:pointer;background:none}
.gd-thumbs button.on{border-color:var(--fg)}.gd-thumbs img{width:100%;height:100%;object-fit:cover}
.gd-info{padding:clamp(22px,3vw,36px);padding-top:clamp(28px,3.4vw,40px)}
.gd-info .h2{font-size:clamp(1.5rem,2.4vw,2rem);padding-right:40px}
.gd-badge{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.gd-desc{color:var(--slate);margin-bottom:14px}
.gd-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0 0 20px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gd-specs div{min-width:0}.gd-specs div:last-child:nth-child(odd){grid-column:1/-1}
.gd-specs dt{font-family:var(--serif);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.gd-specs dd{margin:2px 0 0;font-size:.95rem;overflow-wrap:anywhere}
.gd-acts{display:flex;flex-direction:column;gap:10px}
.gd-acts .btn{width:100%;justify-content:center;flex-wrap:wrap}
.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.soon{display:inline-block;font-family:var(--serif);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--ink);color:var(--bg);margin-left:8px}
.plan .soon{align-self:flex-start;margin:auto 0 0;padding:8px 14px}
.gd-wa{font-size:.9rem;color:var(--fg);text-align:center;margin-top:2px}
.gd-quote{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.gd-quote h3{margin-bottom:12px}
@media(max-width:760px){.gdlg{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0;margin:0}.gd-in{grid-template-columns:1fr;max-height:100dvh}.gd-main{aspect-ratio:4/3}}
@media(max-width:420px){.gd-specs{grid-template-columns:1fr}}

.plans.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.plans.four{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}
@media(max-width:600px){.plans.four{grid-template-columns:1fr}}
.plan-state{margin-top:auto;font-family:var(--serif);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#1D5C2A;background:#D8F0DC;padding:9px 14px;border-radius:99px;align-self:flex-start}
.plan .price.quote{font-size:clamp(1.5rem,2vw,1.8rem)}
html:not(.member) .plan-state{display:none}

/* requests */
.req-contact[hidden]{display:none}
.req-ok{text-align:center;padding:12px 0;display:grid;gap:10px;justify-items:center}
.req-ok>span{width:52px;height:52px;border-radius:50%;background:#D8F0DC;color:#1D5C2A;display:grid;place-items:center;font-size:1.5rem}
.req-ok p{color:var(--slate);max-width:44ch}
.req-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.req-head .mini{flex:none}
.req-list{display:grid;gap:10px}
.req-item{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--bg)}
.req-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.req-top small{display:block;font-size:.75rem;color:var(--slate)}
.req-top b{font-weight:600}
.req-item>p{margin-top:4px}
.req-reply{margin-top:10px;background:var(--tint);border-radius:10px;padding:10px 12px;font-size:.95rem}
.req-reply small{display:block;font-family:var(--serif);font-size:.6rem;letter-spacing:.16em;color:var(--fg);margin-bottom:2px}
#my-req{margin-bottom:18px}

/* Home Care */
.hc-hero picture,.hc-hero img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
@media(max-width:900px){.hc-hero picture,.hc-hero img{aspect-ratio:16/10}}
.hc-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.hc-ico{font-size:1.9rem;line-height:1}
.hc-plans{grid-template-columns:1fr;max-width:none}
.hc-plans .plan{padding:20px 24px;gap:6px}
.hc-plans .plan.hot{margin-top:6px}
.hc-book{align-items:start}
a.inline{text-decoration:underline;text-underline-offset:3px}

/* admin requests */
.qrow{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
.qrow h3{margin:2px 0 4px}
.qdet{margin-top:10px;display:grid;gap:4px;color:var(--slate)}
.qside{display:grid;gap:6px}
.qside select,.qside textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font:inherit;font-size:15px}
@media(max-width:800px){.qrow{grid-template-columns:1fr}}
.gdlg{margin:auto}
.btn[aria-disabled="true"]{opacity:1;background:var(--soft);border-color:var(--line);color:var(--slate)}
@media(max-width:600px){.cat-hero .cat-top .lead{font-size:.95rem;margin-top:.4rem!important}.cat-me{padding:10px 14px}.cat-me b{font-size:.95rem}.legend{font-size:.8rem;gap:4px 14px}.legend span:last-child{display:none}.cat-hero{padding-top:1.4rem}}
.loc-btns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.loc-btns .mini{flex:1 1 auto;background:var(--card);cursor:pointer}
.loc-map{height:260px;border-radius:12px;overflow:hidden;border:1px solid var(--line);margin-bottom:10px;background:var(--soft);position:relative;z-index:0}
.loc-msg{margin-top:6px}.loc-msg.ok{color:#1D5C2A}.loc-msg.warn{color:#8A2317}
.loc-msg a{text-decoration:underline}

/* pillars v2: any number of visible pillars, hairline dividers via gap */
.pillars,html:not(.staff):not(.member) .pillars{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pillars .pillar,html:not(.staff):not(.member) .pillars .pillar{border:0!important;background:var(--bg);min-height:320px}
.pillars .pillar.dark{background:#0E0D0C}
@media (hover:hover){.pillars .pillar:hover{background:var(--card)}.pillars .pillar.dark:hover{background:#171513}}
@media(max-width:1100px){.pillars,html:not(.staff):not(.member) .pillars{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}
  html.member .pillars .pillar:last-child,html.staff .pillars .pillar:last-child{grid-column:1/-1;min-height:0}}
@media(max-width:600px){.pillars,html:not(.staff):not(.member) .pillars{grid-template-columns:1fr}.pillars .pillar,html:not(.staff):not(.member) .pillars .pillar{min-height:0}}

/* guest teaser for the members-only gadget catalog */
.lock-tag{display:inline-block;vertical-align:middle;margin-left:6px;font-family:var(--serif);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;border-radius:99px;background:var(--tint);color:var(--fg)}
.lock-tag::before{content:"🔒 ";font-size:.9em}
.gteaser-sec{padding:0 0 clamp(2rem,5vw,3.5rem)}
.gteaser{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(14px,2.5vw,28px);align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:clamp(18px,2.5vw,26px) clamp(18px,3vw,32px)}
.gteaser img{height:52px;width:auto}
.gteaser b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(1rem,1.3vw,1.15rem);margin-bottom:4px}
.gteaser span{color:var(--slate);font-size:.95rem}
.gteaser .gteaser-cta{font-family:var(--serif);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg);font-weight:500;white-space:nowrap}
@media (hover:hover){.gteaser{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.gteaser:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.07)}}
@media(max-width:700px){.gteaser{grid-template-columns:1fr;gap:10px}.gteaser img{height:44px}}
.pillars .pillar.dark,html:not(.staff):not(.member) .pillars .pillar.dark{background:#0E0D0C}
@media(max-width:1100px){.pillars .pillar:last-child,html:not(.staff):not(.member) .pillars .pillar:last-child{grid-column:1/-1;min-height:0}}
@media(max-width:600px){.pillars .pillar:last-child{grid-column:auto}}

/* sign-in / create account tabs */
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--soft);padding:5px;border-radius:12px;margin-bottom:22px}
.auth-tabs button{border:0;background:transparent;padding:12px 10px;border-radius:9px;font-family:var(--serif);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;color:var(--slate);min-height:44px}
.auth-tabs button.on{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.06);font-weight:500}
.pw-wrap{position:relative}.pw-wrap input{padding-right:48px!important}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:transparent;cursor:pointer;opacity:.6;font-size:1rem}
.linklike{border:0;background:none;padding:0;font:inherit;color:var(--fg);text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}
.linklike.strong{font-weight:600}
.auth-alt{margin-top:14px}
.acc-side{display:grid;gap:0;align-content:start}

/* account hub: featured catalog card + services + partners */
.acc-links .acc-feature{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;min-height:0;border-color:var(--fg)}
.acc-feature img{height:62px;width:auto}
.acc-feature h3{font-size:1.25rem}
.acc-partner img{height:40px;width:auto;align-self:flex-start}
@media(max-width:600px){.acc-links{grid-template-columns:1fr}.acc-links .acc-feature{grid-template-columns:1fr}}
.gd-credit{display:block;margin-top:10px;font-size:.8rem;color:var(--slate);border-left:2px solid var(--fg);padding-left:10px}

/* ===================== Landing · sem.somma.do (lp-) ===================== */
body.lp{padding-bottom:0}
.lp-top{position:absolute;inset:0 0 auto 0;z-index:20;padding:18px 0}
.lp-top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
.lp-top .lp-logo img{width:118px;height:auto}
.lp-top nav{display:flex;align-items:center;gap:10px}
.lp-lang{display:inline-flex;border:1px solid rgba(255,255,255,.45);border-radius:999px;overflow:hidden}
.lp-lang a{color:#fff;font:500 12px/1 var(--serif);letter-spacing:.1em;padding:9px 12px;opacity:.75}
.lp-lang a[aria-current]{background:rgba(255,255,255,.2);opacity:1}
.lp-wa{display:inline-flex;align-items:center;gap:8px;color:#fff;font:500 13px/1 var(--serif);padding:10px 14px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.35)}
.lp-wa svg{width:16px;height:16px}
.lp-hero{position:relative;min-height:100svh;display:flex;align-items:center;color:#fff;padding:110px 0 64px;isolation:isolate}
.lp-hero .bg,.lp-hero .bg picture,.lp-hero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.lp-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(18,15,13,.82) 0%,rgba(18,15,13,.6) 45%,rgba(18,15,13,.25) 100%)}
.lp-hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,440px);gap:clamp(28px,5vw,72px);align-items:center;width:100%}
.lp-hero h1{font-size:clamp(2.1rem,4.4vw,3.9rem);color:#fff;margin:.4rem 0 1rem}
.lp-hero .kicker{color:#F7B79F}
.lp-hero .lead{color:rgba(255,255,255,.88);max-width:36rem}
.lp-trust{list-style:none;display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:1.6rem;font-size:.95rem;color:rgba(255,255,255,.9)}
.lp-trust li{display:flex;align-items:center;gap:8px}
.lp-trust li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--fg)}
.lp-form{background:var(--card);color:var(--ink);border-radius:18px;padding:clamp(20px,2.6vw,30px);box-shadow:0 30px 70px -20px rgba(0,0,0,.45)}
.lp-form h2{font-size:1.35rem;font-weight:400;margin-bottom:.25rem}
.lp-form .sub{font-size:.92rem;color:var(--slate);margin-bottom:1rem}
.lp-steps{display:flex;gap:6px;margin-bottom:1.1rem}
.lp-steps span{flex:1;height:4px;border-radius:4px;background:var(--line)}
.lp-steps span.on{background:var(--fg)}
.lp-form fieldset{border:0;min-width:0}
.lp-form legend,.lp-form .lbl{font:500 .78rem/1.3 var(--serif);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-bottom:8px;display:block}
.lp-chips{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.lp-chips label{position:relative}
.lp-chips input{position:absolute;opacity:0;inset:0;cursor:pointer}
.lp-chips span{display:flex;align-items:center;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:.95rem;line-height:1.25;transition:border-color .2s,background .2s}
.lp-chips input:checked+span{border-color:var(--fg);background:var(--tint);font-weight:400}
.lp-chips input:focus-visible+span{outline:2px solid var(--fg);outline-offset:2px}
.lp-chips .wide{grid-column:1/-1}
.lp-form .field{margin-bottom:12px}
.lp-form .field label{display:block;font-size:.88rem;color:var(--slate);margin-bottom:5px}
.lp-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lp-form .btn{width:100%;justify-content:center;min-height:52px}
.lp-form .back{background:none;border:0;color:var(--slate);font-size:.9rem;text-decoration:underline;padding:10px 0 0;width:auto;min-height:0}
.lp-form .err{color:#B3261E;font-size:.9rem;margin:6px 0 10px}
.lp-form .fine{font-size:.78rem;color:var(--slate);margin-top:10px;line-height:1.45}
.lp-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lp-done{text-align:center;padding:10px 0}
.lp-done .ok{width:56px;height:56px;border-radius:50%;background:var(--tint);color:var(--fg);display:grid;place-items:center;margin:0 auto 14px;font-size:26px}
.lp-done p{color:var(--slate);margin:.4rem 0 1.2rem}
.lp-sec{padding:var(--pad) 0}
.lp-sec.alt{background:var(--soft)}
.lp-sec .head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;align-items:end;margin-bottom:clamp(28px,4vw,52px)}
.lp-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.lp-cards article{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.lp-cards .n{font:500 .8rem/1 var(--serif);color:var(--fg);letter-spacing:.12em}
.lp-cards h3{margin:.9rem 0 .5rem}
.lp-cards p{font-size:.97rem;color:var(--slate)}
.lp-steps-list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:s}
.lp-steps-list li{counter-increment:s;border-top:2px solid var(--fg);padding-top:16px}
.lp-steps-list li::before{content:"0" counter(s);font:500 .85rem/1 var(--serif);color:var(--fg);letter-spacing:.12em}
.lp-steps-list h3{margin:.7rem 0 .4rem}
.lp-steps-list p{font-size:.97rem;color:var(--slate)}
.lp-gal{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.lp-gal figure{position:relative;border-radius:14px;overflow:hidden;background:var(--soft)}
.lp-gal figure img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.lp-gal .w3{grid-column:span 3}.lp-gal .w2{grid-column:span 2}
.lp-gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;color:#fff;font-size:.88rem;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.lp-gal figcaption small{display:block;opacity:.8;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.lp-vals{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.lp-vals li{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--slate)}
.lp-vals b{display:block;color:var(--ink);font:400 1.05rem/1.3 var(--serif);margin-bottom:6px}
.lp-faq details{border-bottom:1px solid var(--line);padding:16px 0}
.lp-faq summary{cursor:pointer;font:400 1.05rem/1.4 var(--serif);list-style:none;display:flex;justify-content:space-between;gap:16px}
.lp-faq summary::after{content:"+";color:var(--fg);font-size:1.4rem;line-height:1}
.lp-faq details[open] summary::after{content:"–"}
.lp-faq p{margin-top:10px;color:var(--slate);max-width:48rem}
.lp-end{background:#1B1815;color:#F4EFE8;text-align:center;padding:var(--pad) 0}
.lp-end h2{color:#fff}.lp-end .lead{color:rgba(244,239,232,.8);max-width:40rem;margin:1rem auto 1.6rem}
.lp-end .btn-row{justify-content:center}
.lp-end .btn{border-color:rgba(255,255,255,.4);color:#fff}
.lp-foot{background:#141210;color:rgba(244,239,232,.6);font-size:.82rem;padding:22px 0 calc(22px + env(safe-area-inset-bottom))}
.lp-foot .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
.lp-foot a{color:rgba(244,239,232,.85)}
.lp-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(251,248,244,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .3s var(--ease)}
.lp-bar.show{transform:none}
.lp-bar .btn{flex:1;justify-content:center;min-height:48px}
@media (max-width:980px){
  .lp-hero{min-height:0;padding:96px 0 40px}
  .lp-hero .wrap{grid-template-columns:1fr}
  .lp-cards,.lp-steps-list{grid-template-columns:1fr 1fr}
  .lp-sec .head{grid-template-columns:1fr}
}
@media (max-width:640px){
  .lp-top .lp-wa span{display:none}
  .lp-cards,.lp-steps-list,.lp-vals{grid-template-columns:1fr}
  .lp-gal{grid-template-columns:1fr 1fr}
  .lp-gal .w3,.lp-gal .w2{grid-column:span 1}
  .lp-gal .w3:first-child{grid-column:1/-1}
  .lp-form .row2{grid-template-columns:1fr}
  .lp-bar{display:flex}
  .lp-foot{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
}
.lp-chips span{text-transform:none;letter-spacing:0;font-family:var(--sans);font-weight:400}
.lp-form .field label{text-transform:none;letter-spacing:0;font-family:var(--sans);font-weight:400}
.lp-form select{appearance:auto}
