﻿/* Pure Cozy Nest â€“ 3D cabin dolly + window facade stylesheet */
:root{
  --cocoa:#2b1d1b;
  --cocoa-2:#3b2a27;
  --blush:#f3d9d2;
  --rose:#d27a74;
  --rose-d:#b25a56;
  --ember:#f0c27b;
  --cream:#fbf5ec;
  --oat:#efe5d6;
  --line:#e4d6c3;
  --text:#6b5a55;
  --dtext:#cdbcb0;
  --radius:16px;
  --shadow:0 30px 60px -30px rgba(43,29,27,.55);
  --ease:cubic-bezier(.22,.8,.24,1);
}
*{scroll-behavior:smooth}
[id]{scroll-margin-top:84px}
body{font-family:'Nunito',system-ui,sans-serif;background:var(--cream);color:var(--text);overflow-x:hidden;line-height:1.75;font-size:1.05rem}
h1,h2,h3,h4,h5,.brand-text{font-family:'Young Serif',Georgia,serif;color:var(--cocoa);font-weight:400;letter-spacing:-.005em;line-height:1.12}
a{color:var(--rose-d);text-decoration:none}
a:hover{color:var(--cocoa)}
img{max-width:100%}
.section{padding:110px 0;position:relative}
.bg-oat{background:var(--oat)}
.bg-cocoa{background:var(--cocoa);color:var(--dtext)}
.bg-cocoa h2,.bg-cocoa h3{color:#fff}
.section-title{font-size:clamp(2.1rem,4.4vw,3.6rem);margin-bottom:1rem}
.section-title em{font-style:normal;color:var(--rose)}
.kicker{display:inline-flex;align-items:center;gap:.6rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--rose-d);margin-bottom:1rem}
.kicker::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 4px rgba(240,194,123,.35);animation:flick 3s ease-in-out infinite}
@keyframes flick{0%,100%{box-shadow:0 0 0 4px rgba(240,194,123,.35)}50%{box-shadow:0 0 0 8px rgba(240,194,123,.1)}}
.bg-cocoa .kicker{color:var(--ember)}
.lead-soft{font-size:1.12rem;max-width:620px}
.bg-cocoa .lead-soft{color:var(--dtext)}
.text-center .lead-soft{margin-inline:auto}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px}

/* Buttons */
.btn-rose{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--rose),var(--rose-d));color:#fff;border:0;border-radius:50px;padding:.85rem 1.9rem;font-weight:800;white-space:nowrap;box-shadow:0 14px 28px -12px rgba(178,90,86,.8);transition:transform .3s var(--ease),box-shadow .3s}
.btn-rose::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:sweep 4.4s ease-in-out infinite}
@keyframes sweep{0%,60%{left:-60%}100%{left:130%}}
.btn-rose:hover{color:#fff;transform:translateY(-3px);box-shadow:0 20px 34px -12px rgba(178,90,86,.9)}
.btn-ember{background:var(--ember);color:var(--cocoa);border:0;border-radius:50px;padding:.85rem 1.9rem;font-weight:800;white-space:nowrap;transition:.3s var(--ease)}
.btn-ember:hover{color:var(--cocoa);transform:translateY(-3px);box-shadow:0 16px 30px -12px rgba(240,194,123,.9)}
.btn-line{border:1.5px solid var(--cocoa);color:var(--cocoa);border-radius:50px;padding:.8rem 1.9rem;font-weight:800;white-space:nowrap;transition:.3s;background:transparent}
.btn-line:hover{background:var(--cocoa);color:#fff}
.btn-line-light{border:1.5px solid rgba(255,255,255,.6);color:#fff;border-radius:50px;padding:.8rem 1.9rem;font-weight:800;white-space:nowrap;transition:.3s}
.btn-line-light:hover{background:#fff;color:var(--cocoa)}
.link-arrow{font-weight:800;display:inline-flex;align-items:center;gap:.5rem}
.link-arrow i{transition:transform .3s}
.link-arrow:hover i{transform:translateX(6px)}
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--rose),var(--ember));z-index:2000}

/* Navbar + logo: compact, one line, no overlap */
.site-nav{padding:.75rem 0;transition:background .4s,padding .3s,box-shadow .3s}
.site-nav.scrolled{background:rgba(251,245,236,.95);backdrop-filter:blur(12px);padding:.4rem 0;box-shadow:0 12px 30px -24px rgba(43,29,27,.7)}
.site-nav .container{gap:1rem;flex-wrap:nowrap}
.brand{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;flex:0 0 auto;flex-wrap:nowrap}
.brand-mark{display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50% 50% 50% 8px;background:linear-gradient(135deg,var(--rose),var(--ember));color:#fff;font-size:1.05rem;transition:transform .6s var(--ease),border-radius .6s var(--ease)}
.brand:hover .brand-mark{transform:rotate(-14deg) scale(1.1);border-radius:50%}
.brand-text{font-size:1.2rem;color:#fff;white-space:nowrap;line-height:1;transition:color .3s}
.site-nav.scrolled .brand-text{color:var(--cocoa)}
.navbar .nav-link{white-space:nowrap;font-weight:700;font-size:.9rem;color:rgba(255,255,255,.92);padding:.5rem .7rem!important;position:relative;transition:color .3s}
.site-nav.scrolled .nav-link{color:var(--cocoa)}
.navbar .nav-link::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.1rem;height:2px;border-radius:2px;background:var(--ember);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.navbar .nav-link:hover::after,.navbar .nav-link.active::after{transform:scaleX(1)}
.navbar .nav-link.active{color:var(--ember)}
.site-nav.scrolled .nav-link.active{color:var(--rose-d)}
.navbar .btn{padding:.6rem 1.3rem;font-size:.9rem}
.navbar-toggler{padding:.2rem .4rem}
.navbar-toggler i{color:#fff;font-size:1.9rem}
.site-nav.scrolled .navbar-toggler i{color:var(--cocoa)}
@media(max-width:1199px){.navbar-collapse{background:var(--cream);padding:1rem 1.2rem;border-radius:var(--radius);margin-top:.8rem;box-shadow:var(--shadow);position:absolute;left:12px;right:12px;top:100%}.navbar-collapse .nav-link{color:var(--cocoa)!important}}

/* ===== Hero: dolly toward a cabin from dawn to night ===== */
.cine{position:relative;height:480vh;background:#07061a}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:clip;isolation:isolate}
.scene{position:absolute;inset:0;perspective:1100px;perspective-origin:50% 58%;overflow:hidden;background:linear-gradient(180deg,var(--sky1,#3b4a7a),var(--sky2,#f2a98a))}
.world{position:absolute;inset:0;transform-style:preserve-3d;transform:translate3d(calc(var(--px,0)*-16px),calc(var(--py,0)*-8px),0)}
.ly{position:absolute;left:50%;top:58%;transform:translate3d(-50%,var(--ty,-100%),calc((var(--z) + var(--cam,0)*var(--k,1))*1px));will-change:transform;filter:brightness(var(--br,1)) sepia(var(--se,0)) saturate(var(--sa,1))}
.ly svg{display:block;width:100%;height:auto;overflow:visible}
.sky{width:520vw;height:340vh;--z:-2600;--ty:-62%;--k:.1;background:linear-gradient(180deg,var(--sky1,#3b4a7a) 0%,var(--sky2,#f2a98a) 52%,var(--sky3,#fbd9b8) 62%);filter:none}
.stars{width:460vw;height:240vh;--z:-2500;--ty:-80%;--k:.1;opacity:var(--stars,0);filter:none;background-image:radial-gradient(2px 2px at 8% 20%,#fff,transparent),radial-gradient(2px 2px at 22% 60%,#fff,transparent),radial-gradient(1.5px 1.5px at 35% 30%,#fff,transparent),radial-gradient(2px 2px at 48% 75%,#fff,transparent),radial-gradient(1.5px 1.5px at 60% 15%,#fff,transparent),radial-gradient(2px 2px at 72% 50%,#fff,transparent),radial-gradient(1.5px 1.5px at 85% 25%,#fff,transparent),radial-gradient(2px 2px at 93% 68%,#fff,transparent),radial-gradient(1.5px 1.5px at 14% 82%,#fff,transparent),radial-gradient(1.5px 1.5px at 55% 45%,#fff,transparent);background-size:48% 48%}
.orb{width:360px;height:360px;border-radius:50%;--z:-2000;--k:.2;filter:none;transform:translate3d(calc(-50% + var(--ox)*1vw),calc(var(--oy)*1vh - 50%),calc((var(--z) + var(--cam,0)*var(--k,1))*1px))}
.sun{--ox:var(--sx,-30);--oy:var(--sy,10);background:radial-gradient(circle,#fff6d8 0 28%,#ffd37a 40%,rgba(255,180,90,.35) 62%,transparent 70%);opacity:var(--sunO,1)}
.moon{--ox:var(--mx,30);--oy:var(--my,-20);width:240px;height:240px;background:radial-gradient(circle at 38% 38%,#fffdf2 0 42%,#e6e2d4 46%,rgba(255,250,230,.25) 62%,transparent 72%);opacity:var(--moonO,0)}
.m1{width:380vw;--z:-1700;--k:.7;--ty:-100%}
.m2{width:280vw;--z:-1150;--k:.8;--ty:-96%}
.trees{width:220vw;--z:-720;--k:.9;--ty:-92%}
.cabin{width:620px;--z:-360;--k:1;--ty:-82%}
.hill{width:260vw;--z:-260;--k:1;--ty:-4%;opacity:var(--hillO,1)}
.glowwin{fill:#ffcf7a;opacity:var(--glow,.15);transition:none}
.smoke circle{fill:#e8e2dc;opacity:0;animation:smoke 6s ease-in infinite}
.smoke circle:nth-child(2){animation-delay:2s}.smoke circle:nth-child(3){animation-delay:4s}
@keyframes smoke{0%{transform:translate(0,0) scale(.4);opacity:0}15%{opacity:.55}100%{transform:translate(26px,-120px) scale(2.2);opacity:0}}
.door-in{fill:url(#doorGlow);opacity:var(--doorO,0)}
.door-panel{transform-origin:232px 0;transform:scaleX(var(--doorS,1));transform-box:view-box}
.ff{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden;opacity:var(--ffO,0)}
.ff i{position:absolute;width:6px;height:6px;border-radius:50%;background:#ffe9a8;box-shadow:0 0 14px 5px rgba(255,214,120,.8);animation:wander 9s ease-in-out infinite}
@keyframes wander{0%,100%{transform:translate(0,0);opacity:.2}25%{transform:translate(30px,-26px);opacity:1}50%{transform:translate(-20px,-50px);opacity:.3}75%{transform:translate(24px,-20px);opacity:.9}}
.vig{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:var(--vg,1);background:radial-gradient(ellipse at 50% 55%,transparent 55%,rgba(10,6,16,.55) 100%),linear-gradient(0deg,rgba(10,6,16,.7) 0%,transparent 38%),linear-gradient(90deg,rgba(10,6,16,.4),transparent 55%)}
.copy{position:absolute;z-index:22;left:6vw;bottom:14vh;width:min(560px,44vw);transform:translateY(calc(var(--y,0)*1px));opacity:var(--o,0);pointer-events:none;color:#efe3d8;text-shadow:0 2px 22px rgba(10,6,16,.8)}
.copy a{pointer-events:auto}
.copy.c0{--o:var(--o0);--y:var(--y0)}
.copy.c1{--o:var(--o1);--y:var(--y1)}
.copy.c2{--o:var(--o2);--y:var(--y2)}
.copy.c3{--o:var(--o3);--y:var(--y3)}
.copy h1{font-size:clamp(2.7rem,5.8vw,5.4rem);color:#fff}
.copy h2{font-size:clamp(2.2rem,4.4vw,4rem);color:#fff}
.copy h1 em,.copy h2 em{font-style:normal;color:var(--ember)}
.copy p{font-size:1.12rem;margin:1rem 0 1.4rem}
.copy .kicker{color:var(--ember)}
.c0 .ln{display:block;overflow:hidden}
.c0 .ln>span{display:block;transform:translateY(110%);animation:rise 1.2s var(--ease) forwards;animation-delay:var(--d,.3s)}
@keyframes rise{to{transform:none}}
.c0 .fade{opacity:0;animation:fadeup 1s var(--ease) forwards;animation-delay:var(--d,.9s)}
@keyframes fadeup{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hint{position:absolute;right:6vw;bottom:26px;z-index:25;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:800;color:#fff;opacity:var(--oh,1);display:flex;align-items:center;gap:.8rem}
.hint::before{content:"";width:54px;height:2px;background:linear-gradient(90deg,transparent,var(--ember));animation:slide 2s ease-in-out infinite}
@keyframes slide{50%{transform:translateX(-14px)}}
.clock{position:absolute;right:26px;top:50%;z-index:26;width:56px;height:56px;margin-top:-28px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);display:grid;place-items:center;color:#fff;font-size:1.3rem;background:rgba(10,6,16,.35)}
.clock i{transform:rotate(calc(var(--p,0)*300deg))}
@media(max-width:991px){
  .cine{height:420vh}
  .scene{perspective:800px}
  .cabin{width:420px}
  .copy{left:6vw;right:6vw;width:auto;bottom:11vh}
  .copy h1{font-size:clamp(2.4rem,10vw,3.6rem)}.copy h2{font-size:clamp(2rem,8vw,3rem)}
  .copy p{font-size:1rem;margin:.6rem 0 1rem}
  .clock{display:none}
}
.reduce .cine{height:auto}
.reduce .stage{position:relative;height:auto;overflow:visible;padding:0}
.reduce .scene{position:relative;height:100svh}
.reduce .copy{position:relative;opacity:1;transform:none;left:auto;bottom:auto;width:auto;max-width:640px;margin:0 auto;padding:2rem 6vw;pointer-events:auto;color:#cdbcb0;background:var(--cocoa);text-shadow:none}
.reduce .c0{position:absolute;bottom:14vh;left:6vw;background:none;padding:0;z-index:22;color:#efe3d8;width:min(560px,88vw)}
.reduce .c0 .ln>span{transform:none;animation:none}.reduce .c0 .fade{opacity:1;animation:none}
.reduce .hint,.reduce .clock,.reduce .ff{display:none}
.no-js .cine{height:auto}

/* ===== Services: window facade with curtains ===== */
.facade-sec{background:radial-gradient(ellipse at 15% 0%,#4a3430,var(--cocoa) 60%);overflow:hidden}
.facade{position:relative;background:repeating-linear-gradient(180deg,#4a3330 0 38px,#42302d 38px 40px);border-radius:18px;padding:1.5rem;box-shadow:0 40px 80px -30px #000,inset 0 0 0 3px rgba(240,194,123,.2)}
.facade::before{content:"";position:absolute;left:-2%;right:-2%;top:-26px;height:34px;background:#2b1d1b;border-radius:10px 10px 0 0;box-shadow:inset 0 -4px 0 rgba(240,194,123,.35)}
.wgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.wn{position:relative;aspect-ratio:3/4;border:7px solid #7a5543;border-radius:60px 60px 4px 4px;background:#120c0b;overflow:hidden;cursor:pointer;padding:0;transition:transform .5s var(--ease),box-shadow .6s;box-shadow:inset 0 0 18px rgba(0,0,0,.7)}
.wn .in{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.15);transition:opacity .9s,transform 1.4s var(--ease)}
.wn .glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 75%,rgba(255,200,120,.55),transparent 70%);opacity:0;transition:opacity .9s}
.wn .cur{position:absolute;top:0;bottom:0;width:52%;z-index:2;background:repeating-linear-gradient(90deg,#c97a76 0 9px,#b9605d 9px 18px);box-shadow:inset 0 0 24px rgba(0,0,0,.35);transition:transform 1s var(--ease)}
.wn .cur.l{left:0;transform-origin:0 50%}
.wn .cur.r{right:0;transform-origin:100% 50%}
.wn::before,.wn::after{content:"";position:absolute;z-index:4;background:#7a5543;pointer-events:none}
.wn::before{left:0;right:0;top:55%;height:5px}
.wn::after{top:0;bottom:0;left:calc(50% - 2.5px);width:5px}
.wn .nm{position:absolute;left:0;right:0;bottom:0;z-index:5;padding:1.2rem .3rem .45rem;background:linear-gradient(0deg,rgba(20,12,10,.92),transparent);color:#f7e9d8;font-size:.7rem;font-weight:800;text-align:center;line-height:1.15;letter-spacing:.04em;text-transform:uppercase}
.wn .nm i{display:block;font-size:1.15rem;color:var(--ember);margin-bottom:.1rem}
.wn:hover .cur.l,.wn:hover .cur.r{transform:scaleX(.8)}
.wn.on{box-shadow:0 0 0 3px rgba(240,194,123,.8),0 0 60px 10px rgba(255,190,110,.5),inset 0 0 18px rgba(0,0,0,.4);transform:translateY(-4px)}
.wn.on .in{opacity:1;transform:scale(1)}
.wn.on .glow{opacity:1}
.wn.on .cur.l,.wn.on .cur.r{transform:scaleX(.13)}
.wn:focus-visible{outline:3px solid #fff}
.wdetail{background:linear-gradient(160deg,#4a3430,#2b1d1b);border:1px solid rgba(240,194,123,.35);border-radius:20px;padding:2.2rem 2rem;box-shadow:0 40px 80px -30px #000;position:relative;overflow:hidden}
.wdetail::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;top:-90px;background:radial-gradient(circle,rgba(255,196,120,.35),transparent 70%);animation:flick2 4s ease-in-out infinite}
@keyframes flick2{50%{opacity:.5;transform:scale(1.1)}}
.wdetail .swap{position:relative;z-index:1;transition:opacity .35s,transform .5s var(--ease)}
.wdetail.out .swap{opacity:0;transform:translateY(14px)}
.wdetail .bigic{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:#fff;font-size:1.9rem;margin-bottom:1rem;box-shadow:0 0 0 8px rgba(210,122,116,.25)}
.wdetail .tg{display:inline-block;color:var(--ember);font-size:.74rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.wdetail h3{color:#fff;font-size:clamp(1.8rem,2.8vw,2.4rem);margin:.3rem 0 .7rem}
.wdetail p{color:var(--dtext);margin-bottom:1.4rem}
.sr-only-list{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:575px){.wgrid{grid-template-columns:repeat(3,1fr);gap:10px}.wn{border-width:5px;border-radius:40px 40px 4px 4px}.facade{padding:1rem}}

/* Chat process */
.chat{max-width:820px;margin:0 auto}
.bub{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1.5rem}
.bub .av{flex:none;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--rose-d);font-size:1.5rem;box-shadow:0 10px 20px -12px rgba(178,90,86,.8)}
.bub .tx{background:#fff;border:1px solid var(--line);border-radius:24px 24px 24px 6px;padding:1.2rem 1.6rem;max-width:600px;box-shadow:0 18px 34px -24px rgba(43,29,27,.6)}
.bub .tx h3{font-size:1.5rem;margin-bottom:.2rem}
.bub .tx p{margin:0}
.bub.me{flex-direction:row-reverse}
.bub.me .av{background:var(--cocoa);color:var(--ember)}
.bub.me .tx{background:var(--rose);border-color:transparent;border-radius:24px 24px 6px 24px}
.bub.me .tx h3,.bub.me .tx p{color:#fff}
.typing{display:inline-flex;gap:5px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:.8rem 1.1rem}
.typing i{width:8px;height:8px;border-radius:50%;background:var(--rose);animation:dot 1.2s ease-in-out infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes dot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}

/* Page head with lanterns */
.page-head{position:relative;padding:150px 0 90px;overflow:hidden;text-align:center;background:linear-gradient(180deg,#2b1d1b,#4a3430 70%,#6b4a42);color:var(--dtext);min-height:44vh;display:flex;align-items:center}
.page-head .container{position:relative;z-index:3;width:100%}
.page-head h1{color:#fff;font-size:clamp(2.5rem,5.4vw,4.8rem)}
.page-head p{max-width:600px;margin-inline:auto}
.page-head .crumbs{font-size:.82rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.page-head .crumbs a{color:var(--ember)}
.page-head .tag{color:var(--ember)}
.lant{position:absolute;z-index:1;border-radius:50%;background:radial-gradient(circle,#fff0c4 0 18%,#ffc97a 36%,rgba(255,170,90,.35) 60%,transparent 72%);animation:floatl 9s ease-in-out infinite;filter:blur(.5px)}
.lant.a{left:7%;top:24%;width:90px;height:90px}
.lant.b{right:9%;top:18%;width:130px;height:130px;animation-delay:-3s}
.lant.c{left:22%;bottom:12%;width:60px;height:60px;animation-delay:-5s}
.lant.d{right:24%;bottom:16%;width:76px;height:76px;animation-delay:-1.5s}
@keyframes floatl{50%{transform:translateY(-26px) scale(1.1)}}
.pines{position:absolute;left:0;right:0;bottom:-1px;height:80px;z-index:2;background:linear-gradient(0deg,var(--cream) 0 22%,transparent 22%);pointer-events:none}
.pines svg{position:absolute;left:0;bottom:0;width:100%;height:100%}
.tilt-wrap{perspective:1200px}
.tilt{transform-style:preserve-3d;transition:transform .35s var(--ease);position:relative;will-change:transform}
.tilt.moving{transition:transform .08s linear}
.tilt .z1{transform:translateZ(40px)}.tilt .z2{transform:translateZ(70px)}
.glare{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(260px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.3),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:5}
.tilt:hover .glare{opacity:1}
.duo{position:relative;padding-bottom:70px}
.duo .a{width:76%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}
.duo .b{position:absolute;right:0;bottom:0;width:54%;aspect-ratio:1;object-fit:cover;border:8px solid var(--cream);border-radius:var(--radius);box-shadow:var(--shadow);animation:bob 7s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-14px)}}
.deep-img{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/5}
.deep-img img{width:100%;height:100%;object-fit:cover}
.tick{list-style:none;padding:0;margin:0}
.tick li{display:flex;gap:.8rem;margin-bottom:.9rem}
.tick i{color:var(--rose);font-size:1.15rem}
.bg-cocoa .tick i,.panel-dark .tick i{color:var(--ember)}
.cozy{height:100%;text-align:center;padding:2rem 1.4rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:.5s var(--ease)}
.cozy:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.cozy .ico{width:72px;height:72px;margin:0 auto 1rem;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--rose-d);font-size:1.8rem;animation:bob 6s ease-in-out infinite}
.cozy h3{font-size:1.5rem}
.cozy p{margin:0}
.val{height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.1rem 1.7rem;transition:.5s var(--ease)}
.val:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:transparent}
.val i{font-size:2rem;color:var(--rose);display:inline-block;margin-bottom:.8rem;transition:transform .6s var(--ease)}
.val:hover i{transform:scale(1.2) rotate(-8deg)}
.val h3{font-size:1.5rem}
.val p{margin:0}

/* Blog polaroids */
.pol-sec{background:radial-gradient(circle,rgba(210,122,116,.12) 2px,transparent 2px) 0 0/28px 28px,var(--oat)}
.pol{position:relative;display:block;background:#fff;padding:14px 14px 26px;box-shadow:0 26px 46px -24px rgba(43,29,27,.7);transform:rotate(var(--r,0deg));transition:transform .6s var(--ease),box-shadow .6s;color:inherit;height:100%}
.pol::before{content:"";position:absolute;left:50%;top:-14px;width:96px;height:28px;margin-left:-48px;background:rgba(243,217,210,.9);transform:rotate(-3deg);box-shadow:0 2px 6px rgba(0,0,0,.12)}
.pol:hover{transform:rotate(0) translateY(-12px) scale(1.03);box-shadow:0 40px 60px -26px rgba(43,29,27,.8);color:inherit}
.pol .pic{aspect-ratio:1;overflow:hidden}
.pol .pic img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.pol:hover .pic img{transform:scale(1.08)}
.pol .cap{padding:1.1rem .4rem 0}
.pol h2{font-size:1.5rem;color:var(--cocoa)}
.pol p{margin:.4rem 0 0;font-size:.98rem}
.tag{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-d);margin-bottom:.4rem}
.article{max-width:800px;margin:0 auto}
.article h2{font-size:2rem;margin:2.4rem 0 .8rem}
.article p,.article li{font-size:1.1rem;line-height:1.9;color:#5e4e49}
.article .hero-img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:2rem}
.article blockquote{border-left:5px solid var(--rose);background:#fff;padding:1.3rem 1.6rem;border-radius:0 14px 14px 0;font-family:'Young Serif',serif;font-size:1.4rem;color:var(--cocoa);line-height:1.35}
.legal h2{font-size:1.7rem;margin-top:2.2rem}

/* Contact + forms */
.mapcard{position:relative;height:100%;min-height:520px;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}
.mapcard iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:sepia(.35) saturate(.9)}
.postcard{position:absolute;z-index:2;left:18px;bottom:18px;right:18px;background:rgba(43,29,27,.94);border-radius:16px;padding:1.2rem 1.4rem;color:var(--dtext);box-shadow:0 20px 40px -16px #000;display:flex;flex-direction:column;gap:.9rem}
.postcard .it{display:flex;gap:.9rem;align-items:center}
.postcard .ico{flex:none;width:42px;height:42px;border-radius:50%;background:rgba(240,194,123,.15);color:var(--ember);display:grid;place-items:center;font-size:1.1rem}
.postcard h3{font-family:'Nunito',sans-serif;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember);margin:0;font-weight:800}
.postcard a,.postcard p{color:#fff;margin:0;font-weight:700;word-break:break-word;font-size:.98rem}
.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:2.4rem;height:100%;box-shadow:var(--shadow)}
.form-card h2,.form-card h3{font-size:2rem}
.form-control,.form-select{background-color:var(--cream);border:1px solid var(--line);border-radius:14px;padding:.85rem 1rem}
.form-control:focus,.form-select:focus{background-color:#fff;border-color:var(--rose);box-shadow:0 0 0 .22rem rgba(210,122,116,.2)}
.form-label{font-size:.82rem;font-weight:800;color:var(--cocoa)}
.form-check-input:checked{background-color:var(--rose);border-color:var(--rose)}
.note-ok{display:none;background:#fbe9e5;color:var(--rose-d);padding:1rem 1.2rem;border-left:4px solid var(--rose);border-radius:8px}
.panel-dark{background:linear-gradient(160deg,#4a3430,var(--cocoa));color:var(--dtext);border-radius:20px;padding:2.6rem;height:100%;position:relative;overflow:hidden}
.panel-dark h2{color:#fff}
.panel-dark::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-100px;bottom:-100px;background:radial-gradient(circle,rgba(255,196,120,.35),transparent 70%)}
.panel-dark .kicker{color:var(--ember)}

/* Footer */
.footer{background:#1b1211;color:#a8978d;padding:90px 0 0}
.footer h4{color:#fff;font-size:1.3rem;margin-bottom:1.2rem}
.footer a{color:#a8978d;transition:.25s}
.footer a:hover{color:var(--ember)}
.footer .brand-text{color:#fff}
.footer ul{list-style:none;padding:0;margin:0}.footer li{margin-bottom:.6rem}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:56px;padding:22px 0;font-size:.92rem}
.mini-news .form-control{border-radius:50px 0 0 50px;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.15);color:#fff}
.mini-news .form-control::placeholder{color:#7d6d64}
.mini-news .btn{border-radius:0 50px 50px 0}
.social a{width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:inline-grid;place-items:center;margin-right:.4rem}
.social a:hover{background:var(--rose);border-color:var(--rose);color:#fff;transform:translateY(-3px)}
#toTop{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border-radius:50%;border:0;background:var(--rose);color:#fff;font-size:1.3rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(20px);transition:.35s;z-index:1030}
#toTop.show{opacity:1;pointer-events:auto;transform:none}

/* Reveal */
.reveal{opacity:0;transform:translateY(46px) rotateX(8deg);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s);transform-origin:50% 100%}
.reveal.left{transform:translateX(-60px) rotateY(8deg)}
.reveal.right{transform:translateX(60px) rotateY(-8deg)}
.reveal.zoom{transform:scale(.92)}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@media(max-width:991px){.section{padding:76px 0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.ly.m1 svg{height:62vw}.ly.m2 svg{height:36vw}
