/* Taller Web Pro — components: logo slot, header, buttons, comparison. */
/* ---------- brand mark (temporary logo slot) ---------- */
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand__mark{width:var(--mark);height:var(--mark);flex:none}
.brand__name{font:500 21px/1 var(--serif);letter-spacing:.005em;white-space:nowrap}
.brand__name em{color:var(--brand-accent,var(--accent));font-style:normal}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface-0) 70%,transparent);backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px) saturate(120%);border-bottom:1px solid transparent;transition:border-color .5s var(--ease),background-color .5s var(--ease)}
.site-header.is-scrolled{border-bottom-color:var(--line);background:color-mix(in srgb,var(--surface-0) 88%,transparent)}
.nav{display:flex;align-items:center;gap:18px;height:80px;transition:height .5s var(--ease-out)}
.site-header.is-scrolled .nav{height:66px}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links>a{position:relative;text-decoration:none;font-size:14.5px;font-weight:500;color:var(--text-2);letter-spacing:.01em;transition:color .3s var(--ease);padding:8px 0}
.nav-links>a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.nav-links>a:hover{color:var(--text-1)}
.nav-links>a:hover::after{transform:scaleX(1);transform-origin:left}
.menu-extra{display:none}
/* the panel receives programmatic focus on open; links keep their :focus-visible ring */
.nav-links:focus{outline:none}
.btn.header-cta{display:none}
@media (min-width:1100px){.btn.header-cta{display:inline-flex}}
.menu-btn{display:none;flex:none;width:46px;height:46px;border:1px solid var(--line-2);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;align-items:center;justify-content:center;transition:border-color .3s}
.menu-btn:hover{border-color:var(--gold)}
.menu-btn span{position:relative;width:16px;height:1.5px;background:currentColor;transition:background .2s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:16px;height:1.5px;background:currentColor;transition:transform .45s var(--ease-out)}
.menu-btn span::before{top:-5px}.menu-btn span::after{top:5px}
.menu-btn[aria-expanded="true"] span{background:transparent}
.menu-btn[aria-expanded="true"] span::before{transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span::after{transform:translateY(-5px) rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 28px;border-radius:999px;background:var(--accent);color:var(--on-accent);text-decoration:none;font:600 15.5px/1 var(--sans);letter-spacing:.01em;border:1px solid var(--gold);overflow:hidden;isolation:isolate;
  transition:background .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease),transform .5s var(--ease-out),box-shadow .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,250,235,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease-out)}
.btn:hover{background:#D1AF68;border-color:#D1AF68;transform:translateY(-2px);box-shadow:0 14px 34px -14px rgba(199,163,90,.55)}
.btn:hover::before{transform:translateX(120%)}
.btn:active{transform:translateY(0);transition-duration:.1s}
.btn.ghost{background:transparent;color:var(--text-1);border-color:var(--line-strong)}
.btn.ghost::before{display:none}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent-ink);box-shadow:none;background:var(--accent-wash)}
.btn.sm{min-height:42px;padding:0 20px;font-size:14px}
.btn .arr{transition:transform .5s var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}

.tlink{display:inline-flex;align-items:center;gap:8px;color:var(--accent-ink);text-decoration:none;font-weight:600;font-size:15px;background:linear-gradient(var(--gold),var(--gold)) left bottom/0 1px no-repeat;padding-bottom:3px;transition:background-size .6s var(--ease-out)}
.tlink:hover{background-size:100% 1px}

.frame{position:relative;max-width:1180px;margin:0 auto;border-radius:26px;padding:14px;background:var(--surface-2);border:1px solid var(--line-strong);box-shadow:0 60px 120px -50px hsl(var(--shadow-color) / .8),0 0 0 1px rgba(0,0,0,.5)}
.frame__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 14px}
.seg{display:inline-flex;padding:4px;border-radius:999px;background:var(--surface-0);border:1px solid var(--line)}
.seg button{appearance:none;border:0;background:transparent;color:var(--muted);font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:10px 16px;min-height:36px;border-radius:999px;cursor:pointer;transition:color .3s,background .4s var(--ease)}
.seg button[aria-pressed="true"]{background:var(--surface-1);color:var(--accent-ink)}
.frame__label{font:500 12.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);padding-right:6px}
.ba{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;--pos:50%;user-select:none;-webkit-user-select:none;touch-action:pan-y;background:#0F0F0E}
.ba__layer{position:absolute;inset:0}
.ba__after{clip-path:inset(0 0 0 var(--pos))}
.ba.is-anim .ba__after,.ba.is-anim .ba__handle,.ba.is-anim .ba__knob{transition:clip-path .9s var(--ease-io),left .9s var(--ease-io)}
.ba__handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:var(--gold-2);z-index:2;pointer-events:none;box-shadow:0 0 18px rgba(228,210,163,.35)}
.ba__knob{position:absolute;top:50%;left:clamp(47px,var(--pos),calc(100% - 47px));z-index:3;pointer-events:none;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#0D0D0D url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 46'%3E%3Cpath d='M19 17l-6 6 6 6M27 17l6 6-6 6' fill='none' stroke='%23E4D2A3' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/46px no-repeat;border:1px solid var(--gold);box-shadow:0 8px 24px rgba(0,0,0,.6)}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0}
.ba input:focus-visible~.ba__knob{outline:2px solid var(--gold-2);outline-offset:4px}
.ba__tag{position:absolute;bottom:16px;font:600 12.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:9px 12px;border-radius:999px;z-index:3;pointer-events:none;transition:opacity .35s var(--ease)}
/* an inactive edge label disappears at once (no fading silhouette); it fades back in when its side returns */
.ba:not(.show-l) .ba__tag.l,.ba:not(.show-r) .ba__tag.r{opacity:0;visibility:hidden;transition:none}
.ba__tag.l{left:14px;background:rgba(40,40,40,.75);color:#eee}
.ba__tag.r{right:14px;background:rgba(13,13,13,.82);color:#E0C582;border:1px solid rgba(224,197,130,.35)}
.frame__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 8px 6px}
/* links on the darker frame surface use body ink with an accent underline (accent-ink is < 4.5:1 on surface-2 in light) */
.frame__foot .tlink{color:var(--text-1);background-image:linear-gradient(var(--accent),var(--accent));background-size:100% 1px}
.frame__foot small{color:var(--muted);font-size:13.5px}
/* before: a dated generic page (illustration) */
.old{background:#ECEAE4;color:#333;font:13px/1.4 "Times New Roman",Times,serif;padding:0}
.old .top{background:#3E6399;color:#fff;font:bold clamp(12px,1.6vw,22px)/1 Arial,sans-serif;padding:3.4% 4%;text-align:center;letter-spacing:.04em}
.old .links{padding:1.6% 4%;text-align:center;color:#1a4fd6;text-decoration:underline;font-size:clamp(10px,1vw,14px);background:#dcd9d1;border-bottom:1px solid #c9c5bb}
.old .body{display:grid;grid-template-columns:28% 1fr;gap:3%;padding:3% 4%}
.old .side{background:#d5d2ca;border:1px solid #bdb9ae;padding:6%;font:clamp(10px,.95vw,13px)/1.6 Arial,sans-serif;color:#555}
.old .side u{display:block;color:#1a4fd6}
.old h4{font:bold clamp(13px,1.6vw,21px) "Times New Roman",serif;color:#3E6399;margin-bottom:2%}
.old p{font-size:clamp(11px,1.05vw,14px);color:#555}
.old .row{display:flex;gap:3%;margin-top:4%}
.old .box{flex:1;background:#cfccc4;aspect-ratio:4/3;display:grid;place-items:center;color:#888;font:clamp(9px,.9vw,12px) Arial;border:1px solid #bbb7ad}
.old .cnt{margin-top:4%;font:clamp(9px,.85vw,12px) Arial;color:#777}
/* after: premium page (illustration of the kind of result) */
/* the "after" mock depicts the client's dark site: its palette is fixed, not theme-driven */
.new{--ink:#F4F0E8;--muted:#B4AC9F;--gold:#C7A35A;--gold-2:#E0C582;background:#121211;color:var(--ink);display:flex;flex-direction:column}
.new .top{display:flex;align-items:center;justify-content:space-between;padding:3.2% 5%;border-bottom:1px solid #22201d}
.new .lg{font:500 clamp(11px,1.3vw,18px)/1 var(--serif);letter-spacing:.02em}
.new .lg em{font-style:normal;color:var(--gold)}
.new .nv{display:flex;gap:clamp(6px,1.6vw,18px);align-items:center;font:500 clamp(8px,.9vw,12px) var(--sans);color:var(--muted)}
.new .nv b{font-weight:600;color:#0D0D0D;background:var(--gold);padding:.6em 1.1em;border-radius:999px}
.new .nh{padding:0;display:grid;grid-template-columns:.95fr 1.05fr;gap:9%;align-items:center;flex:1;padding:0 5%}
.new .k{font:600 clamp(8px,.8vw,11px)/1 var(--sans);letter-spacing:.2em;color:var(--gold);text-transform:uppercase;margin-bottom:6%}
.new .h{font:400 clamp(18px,3vw,42px)/1.02 var(--serif);letter-spacing:-.02em}
.new .h em{font-style:normal;color:var(--gold-2)}
.new .d{margin-top:5%;font-size:clamp(10px,1vw,13px);color:var(--muted);line-height:1.5;max-width:22em}
.new .pill{display:inline-block;margin-top:7%;padding:.9em 1.6em;border-radius:999px;background:var(--gold);color:#0D0D0D;font:600 clamp(9px,.95vw,13px)/1 var(--sans)}
.new .ph{position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden;border:1px solid #2a2722;background:linear-gradient(175deg,#2c261f,#171512 70%)}
.new .ph i{position:absolute;display:block}
.new .ph .win{left:14%;top:10%;width:34%;height:36%;border-radius:4px;background:linear-gradient(180deg,rgba(228,210,163,.42),rgba(228,210,163,.08));box-shadow:0 0 40px rgba(228,210,163,.2)}
.new .ph .ctr{left:0;right:0;bottom:16%;height:22%;background:linear-gradient(180deg,#6a5843,#3b3125);box-shadow:inset 0 2px 0 rgba(255,240,210,.18)}
.new .ph .isl{left:22%;right:22%;bottom:0;height:18%;background:linear-gradient(180deg,#2e2820,#1b1814)}
.new .ph .lamp{left:58%;top:0;width:1px;height:26%;background:rgba(228,210,163,.5)}
.new .ph .lamp::after{content:"";position:absolute;left:-9px;bottom:-6px;width:19px;height:9px;border-radius:9px 9px 2px 2px;background:var(--gold)}

/* ---------- theme toggle ---------- */
.theme-toggle{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--text-1);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);flex:none}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent-ink)}
.theme-toggle svg{grid-area:1/1;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;transition:opacity var(--dur-base) var(--ease),transform var(--dur-base) var(--ease-out)}
.theme-toggle__moon{fill:currentColor;stroke:none}
.theme-toggle[aria-pressed="true"] .theme-toggle__moon,.theme-toggle[aria-pressed="false"] .theme-toggle__sun{opacity:0;transform:rotate(-40deg) scale(.6)}
html:not([data-theme]) .theme-toggle__moon{opacity:0}
.nav .brand{order:1}.nav .nav-links{order:2;margin-left:auto}.nav .header-cta{order:3}.nav>.theme-toggle{order:4}.nav .menu-btn{order:5}

/* ---------- full-screen mobile menu ---------- */
@media (max-width:860px){
  .nav,.site-header.is-scrolled .nav{height:66px}
  :root{--mark:34px}
  .nav>.theme-toggle{margin-left:auto}
  .menu-btn{display:inline-flex}
  .site-header.menu-open{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface-0)}
  .nav-links{position:fixed;inset:0;z-index:-1;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;flex-direction:column;align-items:stretch;gap:0;padding:96px var(--gutter) 40px;background:var(--surface-0);
    opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility 0s .35s}
  .nav-links.is-open{opacity:1;visibility:visible;transition:opacity .35s var(--ease)}
  .nav-links>a{font:400 clamp(30px,8.4vw,40px)/1 var(--font-display);color:var(--text-1);padding:22px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
  .nav-links>a::after{position:static;content:"→";background:none;transform:none;height:auto;color:var(--accent-ink);font:400 20px/1 var(--font-text)}
  .menu-extra{display:grid;gap:18px;margin-top:32px;justify-items:stretch}
  .menu-extra .menu-cta{min-height:56px;font-size:16px}
  .menu-mail{display:block;text-align:center;color:var(--text-2);font-size:15.5px;text-decoration:none;padding:10px 0}
  .js .nav-links.is-open>a,.js .nav-links.is-open .menu-extra{animation:menuIn .6s var(--ease-out) both}
  .js .nav-links.is-open>a:nth-child(2){animation-delay:.04s}.js .nav-links.is-open>a:nth-child(3){animation-delay:.08s}
  .js .nav-links.is-open>a:nth-child(4){animation-delay:.12s}.js .nav-links.is-open>a:nth-child(5){animation-delay:.16s}
  .js .nav-links.is-open .menu-extra{animation-delay:.2s}
}

/* Mobile sticky CTA (shown by assets/js/sticky.js; never on desktop, never without JS). */
.sticky-cta{position:fixed;z-index:40;left:50%;bottom:calc(14px + env(safe-area-inset-bottom, 0px));transform:translateX(-50%);display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;background:var(--accent);color:var(--on-accent);font:600 15.5px/1 var(--font-text);text-decoration:none;white-space:nowrap;box-shadow:0 14px 34px -12px hsl(var(--shadow-color) / .55),0 0 0 1px color-mix(in srgb,var(--on-accent) 12%,transparent)}
.sticky-cta[hidden]{display:none}
.sticky-cta:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
@media (min-width:861px){.sticky-cta{display:none!important}}
@media (prefers-reduced-motion:no-preference){.sticky-cta:not([hidden]){animation:stickyIn .3s var(--ease-out)}}
@keyframes stickyIn{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
