/* Brackenfell Blinds — shared stylesheet
   Theme: family-suburb · Layout: boxed editorial hero on textured background,
   centred, asymmetric sections · Palette: pewter + almond + wine red
   Fonts: Literata (display serif) + Albert Sans (sans)
   No third-party embeds. GSAP (cdnjs) is the only external script. */

:root{
  --ink:#242628;
  --ink-soft:#5b5d60;
  --canvas:#f8f6f2;
  --canvas-deep:#efe9e0;
  --line:#e0dace;
  --white:#ffffff;
  --accent:#96605c;
  --accent-deep:#663b38;
  --accent-soft:#c39c95;
  --serif:'Literata',Georgia,serif;
  --sans:'Albert Sans',system-ui,-apple-system,sans-serif;
  --shadow-lg:0 34px 68px -36px rgba(36,38,40,.38);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--canvas);color:var(--ink);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.015em}
a{color:inherit}
img,svg{max-width:100%;display:block}
button{font-family:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.label{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--accent)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:11px;background:var(--accent);color:var(--white);font-weight:700;font-size:15px;padding:16px 30px;text-decoration:none;border:none;cursor:pointer;overflow:hidden;transition:color .3s ease;border-radius:3px}
.btn span{position:relative;z-index:2}
.btn::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .35s cubic-bezier(.22,1,.36,1);z-index:1}
.btn:hover{color:var(--white)}
.btn:hover::after{transform:translateY(0)}
.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.btn.dark{background:var(--ink);color:var(--canvas)}
.btn.dark::after{background:var(--accent)}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.line::after{background:var(--ink)}
.btn.line:hover{color:var(--canvas)}
.btn.line.on-dark{color:var(--canvas);box-shadow:inset 0 0 0 1.5px rgba(248,246,242,.55)}
.btn.line.on-dark::after{background:var(--canvas)}
.btn.line.on-dark:hover{color:var(--ink)}

/* nav */
#nav{position:fixed;inset:0 0 auto 0;z-index:95;padding:22px 0;transition:all .35s ease;color:var(--ink);background:transparent}
#nav.solid{background:rgba(248,246,242,.94);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line);padding:14px 0}
#nav .wrap{display:flex;justify-content:space-between;align-items:center}
.mark{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.mark span{font-family:var(--serif);font-weight:600;font-size:1.18rem;white-space:nowrap}
.logo-mark{width:40px;height:40px;flex:none;border-radius:9px;object-fit:cover;display:block;box-shadow:0 2px 8px rgba(36,38,40,.28)}
.f-logo{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.f-logo span{font-family:var(--serif);font-weight:600;font-size:1.1rem;color:var(--canvas)}
#nav ul{display:flex;gap:30px;list-style:none;align-items:center}
#nav ul a:not(.btn){text-decoration:none;font-size:14.5px;font-weight:500;opacity:.82;transition:opacity .2s}
#nav ul a:not(.btn):hover{opacity:1}
#nav .btn{padding:12px 22px;font-size:13.5px}
.mnav{display:none;background:none;border:none;width:38px;height:38px;position:relative;cursor:pointer}
.mnav .ic{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink)}
.mnav .ic-x{display:none}
#nav.open .mnav .ic-bars{display:none}
#nav.open .mnav .ic-x{display:grid}
.mpanel{position:fixed;left:0;right:0;top:0;z-index:94;background:rgba(248,246,242,.98);backdrop-filter:blur(14px);box-shadow:0 24px 44px -26px rgba(36,38,40,.4);padding:96px 28px 28px;transform:translateY(-104%);visibility:hidden;transition:transform .45s cubic-bezier(.22,1,.36,1),visibility .45s}
.mpanel.open{transform:translateY(0);visibility:visible}
.mpanel ul{list-style:none}
.mpanel a:not(.btn){display:block;padding:13px 2px;text-decoration:none;font-family:var(--serif);font-size:1.22rem;font-weight:600;border-bottom:1px solid var(--line);color:var(--ink)}
.mpanel a:not(.btn):hover{color:var(--accent)}
.mpanel .m-cta{margin-top:20px}
@media(max-width:900px){#nav ul li:not(:last-child){display:none}.mnav{display:block}}

/* ============ hero — boxed editorial, textured, centred ============ */
.hero{position:relative;padding:168px 0 84px;text-align:center;overflow:hidden;background:var(--canvas)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.14 0 0 0 0 0.13 0 0 0 0 0.12 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat:repeat}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 480px 320px at 8% 0%, rgba(150,96,92,.14), transparent 62%),
    radial-gradient(ellipse 420px 320px at 96% 6%, rgba(142,142,136,.16), transparent 60%),
    radial-gradient(circle at 22% 92%, rgba(150,96,92,.10), transparent 42%),
    radial-gradient(circle at 82% 96%, rgba(142,142,136,.12), transparent 40%)}
.hero .wrap{position:relative;z-index:1}
.hero .eyebrow{display:flex;align-items:center;justify-content:center;gap:13px}
.hero .eyebrow .ln{width:32px;height:1px;background:var(--accent)}
.hero h1{font-size:clamp(2.3rem,5.2vw,4.1rem);margin:20px auto 22px;max-width:16.5ch;color:var(--ink)}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero h1 .w i{display:inline-block;font-style:inherit;transform:translateY(112%)}
.hero .lead{font-size:1.12rem;max-width:54ch;margin:0 auto 32px;color:var(--ink-soft)}
.hero .cta-row{display:flex;gap:15px;flex-wrap:wrap;justify-content:center;margin-bottom:34px}
.gs-in{opacity:0;transform:translateY(24px)}
.trust{display:flex;gap:26px;flex-wrap:wrap;justify-content:center;margin-bottom:54px;list-style:none}
.trust li{display:flex;align-items:center;gap:9px;font-size:.86rem;font-weight:600;color:var(--ink-soft)}
.trust svg{width:17px;height:17px;flex:none;color:var(--accent)}

.frame-box{position:relative;max-width:960px;margin:0 auto;padding:0 6%;z-index:1}
.frame-inner{position:relative;overflow:hidden;border-radius:18px;box-shadow:var(--shadow-lg)}
.frame-inner img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.frame-cap{position:absolute;left:20px;bottom:20px;background:rgba(36,38,40,.82);backdrop-filter:blur(6px);color:var(--canvas);padding:10px 18px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:9px;border-radius:30px}
.frame-cap .dot{width:6px;height:6px;border-radius:50%;background:var(--accent-soft);flex:none}
.frame-note{position:absolute;right:20px;top:20px;background:var(--canvas);border:1.5px solid var(--line);padding:8px 16px;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-soft);border-radius:30px}
@media(max-width:700px){.hero{padding-top:138px}.frame-note{display:none}.frame-cap{font-size:.6rem;padding:8px 14px;left:12px;bottom:12px}}

/* small page hero (products / areas) */
.phero{position:relative;padding:150px 0 70px;text-align:center;overflow:hidden;background:var(--canvas)}
.phero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.14 0 0 0 0 0.13 0 0 0 0 0.12 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n2)'/%3E%3C/svg%3E");
  background-repeat:repeat}
.phero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 440px 300px at 12% 0%, rgba(150,96,92,.13), transparent 60%),
             radial-gradient(ellipse 380px 300px at 92% 10%, rgba(142,142,136,.14), transparent 58%)}
.phero .wrap{position:relative;z-index:1}
.crumb{display:flex;justify-content:center;gap:8px;font-size:.8rem;color:var(--ink-soft);margin-bottom:18px;flex-wrap:wrap}
.crumb a{text-decoration:none;color:var(--ink-soft)}
.crumb a:hover{color:var(--accent)}
.phero h1{font-size:clamp(2.1rem,4.4vw,3.3rem);margin:14px auto 18px;max-width:18ch}
.phero h1 em{font-style:italic;color:var(--accent)}
.phero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.phero h1 .w i{display:inline-block;font-style:inherit;transform:translateY(112%)}
.phero .lead{font-size:1.06rem;max-width:56ch;margin:0 auto 30px;color:var(--ink-soft)}
.phero .frame-box{max-width:820px}
.phero .frame-inner img{aspect-ratio:16/8}

/* ticker */
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink);overflow:hidden;padding:16px 0}
.ticker .track{display:flex;gap:40px;white-space:nowrap;will-change:transform;width:max-content}
.ticker span{font-family:var(--serif);font-style:italic;font-size:.98rem;color:rgba(248,246,242,.82);display:flex;align-items:center;gap:40px}
.ticker b{color:var(--accent-soft);font-family:var(--sans);font-style:normal;font-size:.68rem;letter-spacing:.28em;font-weight:600}

/* sections */
section{padding:100px 0;position:relative}
.sec-head{max-width:66ch;margin-bottom:52px}
.sec-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem);margin:14px 0 16px}
.sec-head p{color:var(--ink-soft);font-size:1.04rem}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.rule{width:60px;height:2px;background:var(--accent);margin-top:22px;transform-origin:left}

/* manifesto strip — asymmetric two-up */
.manifesto{background:var(--white);border-block:1px solid var(--line)}
.manifesto .wrap{display:grid;grid-template-columns:1fr 1fr;gap:66px;align-items:start}
.manifesto .pq{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.36;color:var(--ink)}
.manifesto .pq em{color:var(--accent);font-style:italic}
.manifesto .body{padding-top:8px}
.manifesto .body p{color:var(--ink-soft);margin-bottom:15px}
@media(max-width:880px){.manifesto .wrap{grid-template-columns:1fr;gap:28px}}

/* collection grid */
.collection{background:var(--canvas-deep)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cell{background:var(--white);padding:0 0 26px;position:relative;overflow:hidden;transition:background .35s ease}
.cell::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,1,.36,1);z-index:2}
.cell:hover{background:var(--canvas-deep)}
.cell:hover::before{transform:scaleX(1)}
.cell .thumb{aspect-ratio:4/3;overflow:hidden;margin-bottom:18px}
.cell .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.cell:hover .thumb img{transform:scale(1.06)}
.cell h3,.cell p,.cell>a{margin-left:24px;margin-right:24px}
.cell h3{font-size:1.06rem;margin-bottom:8px;line-height:1.26}
.cell p{font-size:.87rem;color:var(--ink-soft);margin-bottom:14px}
.cell a{font-size:.8rem;font-weight:700;text-decoration:none;color:var(--accent);letter-spacing:.02em}
.cell a:hover{text-decoration:underline}
@media(max-width:1020px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.grid{grid-template-columns:1fr}}

/* editorial gallery — asymmetric */
.gallery{background:var(--white)}
.gal-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:auto auto;gap:24px}
.gal-item{position:relative;overflow:hidden;border-radius:16px}
.gal-item img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform .8s cubic-bezier(.22,1,.36,1)}
.gal-item:hover img{transform:scale(1.0)}
.gal-item.tall{grid-row:span 2;min-height:520px}
.gal-item.short{min-height:248px}
.gal-cap{position:absolute;left:0;bottom:0;background:rgba(36,38,40,.82);backdrop-filter:blur(8px);color:var(--canvas);padding:13px 20px;font-size:.78rem;letter-spacing:.05em}
.gal-cap b{color:var(--accent-soft);display:block;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:3px}
@media(max-width:880px){.gal-grid{grid-template-columns:1fr}.gal-item.tall{min-height:360px}}

/* locale — dark asymmetric, signature stacker-door animation */
.locale{background:var(--ink);color:var(--canvas);overflow:hidden}
.locale .glow{position:absolute;inset:0;pointer-events:none}
.locale .glow i{position:absolute;filter:blur(70px);opacity:.42;border-radius:40%}
.locale .glow i:nth-child(1){width:440px;height:300px;background:rgba(150,96,92,.5);left:-120px;top:-100px}
.locale .glow i:nth-child(2){width:400px;height:340px;background:rgba(142,142,136,.35);right:-110px;bottom:-140px}
.locale .wrap{position:relative;z-index:2}
.locale .label{color:var(--accent-soft)}
.locale .sec-head h2{color:var(--canvas)}
.locale .sec-head p{color:rgba(248,246,242,.72)}
.locale-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:start}
.locale-copy p{color:rgba(248,246,242,.78);margin-bottom:16px;font-size:1rem}
.locale-copy p strong{color:var(--canvas);font-weight:600}
@media(max-width:900px){.locale-grid{grid-template-columns:1fr;gap:36px}}

/* stacker-door signature animation */
.stacker-wrap{position:relative}
.stacker{width:100%;height:auto;overflow:visible}
.stacker .door-frame{stroke:rgba(248,246,242,.28);stroke-width:2;fill:none}
.stacker .door-mullion{stroke:rgba(248,246,242,.2);stroke-width:2}
.stacker .blind{transform-box:fill-box;transform-origin:top}
.stacker .blind rect{fill:var(--accent)}
.stacker .headbox{fill:rgba(248,246,242,.9)}
.stacker .sun{fill:var(--accent-soft);opacity:.85}
.stacker-caption{margin-top:18px;font-size:.8rem;color:rgba(248,246,242,.6);text-align:center;letter-spacing:.02em}

/* process — asymmetric offsets */
.process{background:var(--white)}
.process .label{color:var(--accent)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:34px}
.step{border-top:1.5px solid var(--line);padding-top:22px}
.step:nth-child(2),.step:nth-child(4){margin-top:36px}
.step .n{font-family:var(--serif);font-style:italic;font-size:2.1rem;color:var(--accent)}
.step h3{font-size:1.06rem;margin:10px 0 8px}
.step p{font-size:.89rem;color:var(--ink-soft)}
@media(max-width:880px){.steps{grid-template-columns:repeat(2,1fr)}.step:nth-child(2),.step:nth-child(4){margin-top:0}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* areas */
.areas{background:var(--canvas-deep)}
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{border:1.5px solid var(--line);background:var(--white);padding:13px 24px;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .28s ease;border-radius:30px;color:var(--ink)}
.chip:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-3px);box-shadow:0 10px 22px -12px rgba(36,38,40,.25)}
.chip span{color:var(--accent);margin-left:6px}

/* faq */
.faq{background:var(--white);border-top:1px solid var(--line)}
.faq .wrap{max-width:860px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 4px;font-family:var(--serif);font-size:1.15rem;font-weight:600;transition:color .25s}
.faq summary:hover{color:var(--accent)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ind{flex:none;width:30px;height:30px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:1.05rem;font-family:var(--sans);transition:transform .32s ease,background .32s ease}
.faq details[open] .ind{transform:rotate(45deg);background:var(--accent);border-color:var(--accent);color:var(--white)}
.faq details p{padding:0 46px 26px 4px;color:var(--ink-soft);max-width:74ch}

/* closing cta — animated wine-toned glow */
.close{background:var(--accent-deep);color:var(--canvas);text-align:center;overflow:hidden}
.close .aur{position:absolute;inset:0;pointer-events:none}
.close .aur i{position:absolute;border-radius:50%;filter:blur(72px);opacity:.5}
.close .aur i:nth-child(1){width:500px;height:500px;background:rgba(150,96,92,.5);left:-140px;top:-180px;animation:aur1 12s ease-in-out infinite alternate}
.close .aur i:nth-child(2){width:440px;height:440px;background:rgba(36,38,40,.55);right:-120px;bottom:-190px;animation:aur2 14s ease-in-out infinite alternate}
@keyframes aur1{from{transform:translate(0,0)}to{transform:translate(100px,60px)}}
@keyframes aur2{from{transform:translate(0,0)}to{transform:translate(-90px,-65px)}}
.close .wrap{position:relative;z-index:2}
.close h2{color:var(--canvas);font-size:clamp(2rem,4.3vw,3.2rem);max-width:20ch;margin:16px auto 18px}
.close h2 em{font-style:italic;color:var(--accent-soft)}
.close p{color:rgba(248,246,242,.75);max-width:52ch;margin:0 auto 38px}

/* form */
.enquire{background:var(--canvas-deep)}
.enquire .wrap{display:grid;grid-template-columns:1fr 1fr;gap:66px}
.enquire form{background:var(--white);padding:44px;border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:14px}
.f-row{margin-bottom:19px}
label{display:block;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;color:var(--ink-soft)}
input,select,textarea{width:100%;padding:13px 14px;border:1.5px solid var(--line);background:var(--canvas);font:inherit;font-size:15px;border-radius:6px;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(150,96,92,.14)}
.popia{font-size:.78rem;color:var(--ink-soft);margin-top:14px}
.form-status{display:none;margin-top:16px;padding:14px 16px;border-radius:8px;font-size:.88rem;background:rgba(150,96,92,.1);border:1px solid var(--accent-soft);color:var(--accent-deep)}
.form-status.show{display:block}
.form-status.error{background:rgba(150,96,92,.12);border-color:var(--accent)}
@media(max-width:880px){.enquire .wrap{grid-template-columns:1fr}}

/* ============ product / area subpage content ============ */
.content-block{background:var(--white)}
.content-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:60px;align-items:start}
.body-copy h2,.body-copy h3{margin:34px 0 14px}
.body-copy h3{font-size:1.24rem}
.body-copy p{color:var(--ink-soft);margin-bottom:15px}
.body-copy ul{margin:0 0 18px 0;list-style:none}
.body-copy ul li{position:relative;padding-left:24px;color:var(--ink-soft);margin-bottom:10px}
.body-copy ul li::before{content:"";position:absolute;left:0;top:.6em;width:9px;height:2px;background:var(--accent)}
.body-copy a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.side-card{background:var(--canvas-deep);border:1px solid var(--line);border-radius:14px;padding:30px;position:sticky;top:110px}
.side-card h4{font-family:var(--serif);font-size:1.08rem;margin-bottom:10px}
.side-card p{color:var(--ink-soft);font-size:.93rem;margin-bottom:18px}
@media(max-width:900px){.content-grid{grid-template-columns:1fr}.side-card{position:static}}

.related{background:var(--canvas-deep)}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.mini-card{background:var(--white);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--ink);display:block;transition:transform .3s ease,box-shadow .3s ease}
.mini-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.mini-thumb{height:170px;overflow:hidden}
.mini-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.mini-card:hover .mini-thumb img{transform:scale(1.06)}
.mini-card .mc-body{padding:20px 22px 24px}
.mini-card h3{font-size:1.02rem;margin-bottom:6px}
.mini-card p{font-size:.86rem;color:var(--ink-soft);margin-bottom:10px}
.mini-card .card-link{font-size:.8rem;font-weight:700;color:var(--accent)}
@media(max-width:900px){.mini-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.mini-grid{grid-template-columns:1fr}}

/* footer */
footer{background:var(--ink);color:rgba(248,246,242,.62);padding:54px 0 40px;font-size:.85rem}
footer .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
footer strong{color:var(--canvas)}
.f-links{display:flex;gap:54px;flex-wrap:wrap;margin-top:32px;padding-top:26px;border-top:1px solid rgba(248,246,242,.14)}
.f-links .label{color:var(--accent-soft);margin-bottom:12px;display:block}
.f-links a{display:block;color:rgba(248,246,242,.68);text-decoration:none;font-size:.86rem;padding:4px 0;transition:color .2s}
.f-links a:hover{color:var(--accent-soft)}

/* focus visibility everywhere */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* ============ reveal system ============ */
.reveal{opacity:0;transform:translateY(30px)}
.reveal.stagger{opacity:1;transform:none}
.reveal.stagger>*{opacity:0;transform:translateY(22px)}

/* ============ chat widget ============ */
.chat-launcher{position:fixed;right:22px;bottom:22px;z-index:900;width:60px;height:60px;border-radius:50%;background:var(--accent);color:var(--white);border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 32px rgba(102,59,56,.4);transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s ease;cursor:pointer}
.chat-launcher:hover{transform:scale(1.07);background:var(--accent-deep)}
.chat-launcher svg{width:25px;height:25px}
.chat-launcher .chat-icon-close{display:none}
.chat-launcher.open .chat-icon-chat{display:none}
.chat-launcher.open .chat-icon-close{display:block}
.chat-panel{position:fixed;right:22px;bottom:96px;z-index:899;width:360px;max-width:calc(100vw - 32px);height:496px;max-height:calc(100vh - 148px);background:var(--white);border-radius:12px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(16px) scale(.98);pointer-events:none;visibility:hidden;transition:opacity .28s ease,transform .28s ease,visibility 0s linear .28s;border:1px solid var(--line)}
.chat-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;visibility:visible;transition:opacity .28s ease,transform .28s ease,visibility 0s}
.chat-head{background:var(--ink);color:var(--white);padding:17px 19px;display:flex;align-items:center;gap:12px}
.chat-head .brand-mark{width:26px;height:26px;flex:none}
.chat-head-text strong{display:block;font-family:var(--serif);font-size:1rem}
.chat-head-text span{font-size:.74rem;color:rgba(248,246,242,.68)}
.chat-body{flex:1;overflow-y:auto;padding:17px 15px;display:flex;flex-direction:column;gap:11px;background:var(--canvas)}
.chat-msg{max-width:84%;padding:11px 13px;border-radius:12px;font-size:.87rem;line-height:1.5}
.chat-msg.bot{background:var(--white);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:3px;color:var(--ink)}
.chat-msg.user{background:var(--accent);color:var(--white);align-self:flex-end;border-bottom-right-radius:3px}
.chat-msg.popia{font-size:.74rem;color:var(--ink-soft);background:transparent;border:none;padding:0 3px}
.chat-msg.bot,.chat-msg.user{animation:chatIn .32s cubic-bezier(.22,.61,.36,1) both}
@keyframes chatIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.chat-typing{display:inline-flex;gap:5px;align-items:center;padding:13px 14px}
.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--accent-soft);animation:chatDot 1.1s ease-in-out infinite}
.chat-typing span:nth-child(2){animation-delay:.16s}
.chat-typing span:nth-child(3){animation-delay:.32s}
@keyframes chatDot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.chat-chips{display:flex;flex-wrap:wrap;gap:7px;padding:2px 2px 4px}
.chat-chip{border:1px solid var(--ink);color:var(--ink);background:var(--white);padding:8px 13px;border-radius:999px;font-size:.79rem;transition:background .2s ease,color .2s ease;cursor:pointer}
.chat-chip:hover{background:var(--ink);color:var(--white)}
.chat-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--white)}
.chat-input-row input{flex:1;border:1px solid var(--line);border-radius:999px;padding:10px 15px;font-size:.87rem;background:var(--canvas)}
.chat-input-row input:focus{outline:none;border-color:var(--accent)}
.chat-send{width:39px;height:39px;border-radius:50%;background:var(--accent);color:var(--white);border:none;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s ease;cursor:pointer}
.chat-send:hover{background:var(--accent-deep)}
.chat-send svg{width:16px;height:16px}
@media(max-width:480px){.chat-panel{right:16px;bottom:88px}.chat-launcher{right:16px;bottom:16px}}

@media(prefers-reduced-motion:reduce){
  .reveal,.reveal.stagger,.reveal.stagger>*{opacity:1!important;transform:none!important}
  .gs-in{opacity:1!important;transform:none!important}
  .hero h1 .w i,.phero h1 .w i{transform:none!important}
  .ticker .track{animation:none!important}
  .close .aur i{animation:none!important}
  .chat-msg.bot,.chat-msg.user{animation:none}
  .chat-typing span{animation:none;opacity:.6}
  html{scroll-behavior:auto}
}
