*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f5ef;color:#20241f;font-family:"DM Sans",Arial,sans-serif}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.header{position:fixed;z-index:50;top:0;left:0;right:0;height:82px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;background:rgba(22,25,22,.92);backdrop-filter:blur(12px);color:#fff}.logo{display:block}.header .logo-image{width:138px;height:auto}.header nav{display:flex;align-items:center;gap:24px;font-size:13px;letter-spacing:.02em}.header nav a{opacity:.9}.header nav a:hover{opacity:1}.nav-button,.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 19px;border-radius:999px;font-weight:700}.nav-button{background:#c91f35;color:#fff}.menu{display:none;background:none;border:0;color:#fff;font-size:26px}.hero{position:relative;min-height:88vh;overflow:hidden;background:#18201b;color:#fff;display:flex;align-items:center}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,12,10,.78),rgba(8,12,10,.25) 65%,rgba(8,12,10,.35))}.hero-content{position:relative;z-index:2;width:min(760px);padding:145px 7% 95px}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#70766e}.hero .eyebrow{color:#e8eee6}.hero h1{font-size:clamp(48px,7vw,88px);line-height:.98;letter-spacing:-.045em;margin:18px 0}.hero h1 em,h1 em,h2 em{font-family:"Playfair Display",Georgia,serif;font-weight:500}.lead{font-size:18px;line-height:1.7;max-width:650px;color:#e6e8e2}.actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:32px}.button{border:0;cursor:pointer}.button.light{background:#fff;color:#1f241f}.button.dark{background:#20241f;color:#fff}.scroll-link{font-weight:700}.hero-stamp{position:absolute;left:40%;right:auto;bottom:7%;z-index:4;width:145px;height:145px;border:1px solid rgba(255,255,255,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;transform:rotate(-8deg);background:rgba(5,8,6,.34);box-shadow:0 0 22px rgba(255,255,255,.08),inset 0 0 0 1px rgba(201,31,53,.12);text-shadow:0 2px 8px rgba(0,0,0,.85)}.hero-stamp strong{font-size:21px;line-height:.9}.hero-stamp span{font-size:8px;letter-spacing:.13em;margin-top:10px}.statement{padding:clamp(80px,10vw,135px) 7%;display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;background:#f7f5ef}.statement h2,.process h2,.area h2,.quote h2,.gallery-section h2,.dark-section h2{font-size:clamp(42px,5.5vw,72px);line-height:1.02;letter-spacing:-.035em;margin:10px 0 22px}.statement p,.quote-copy>p,.section-top>p,.area p{font-size:18px;line-height:1.75;color:#555c55;max-width:750px}.protection-section{padding:clamp(70px,9vw,120px) 7%;background:#ebe8df;color:#20241f}.protection-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}.protection-section h2{font-size:clamp(42px,5vw,72px);line-height:1.02;margin:12px 0 22px}.protection-section .intro{max-width:650px;font-size:18px;line-height:1.7;color:#555}.protection-card{background:#20241f;color:#fff;padding:38px;border-radius:2px}.protection-card h3{font-family:"Playfair Display",serif;font-size:34px;font-weight:500;margin:0 0 12px}.protection-card p{line-height:1.7;color:#e7e4dc}.protection-points{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}.protection-point{border-top:1px solid rgba(255,255,255,.22);padding-top:16px}.protection-point b{display:block;margin-bottom:6px}.protection-point span{font-size:14px;line-height:1.5;color:#d7d4cc}.investment-section{padding:clamp(70px,9vw,115px) 7%;background:#fff}.investment-head{max-width:820px;margin-bottom:45px}.investment-head h2{font-size:clamp(40px,5vw,68px);line-height:1.04;margin:12px 0 18px}.investment-head p{font-size:18px;line-height:1.7;color:#5d625c}.investment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#d9d8d1}.investment-item{background:#fff;padding:30px 25px;min-height:180px}.investment-item b{display:block;font-size:18px;margin-bottom:10px}.investment-item p{margin:0;color:#666;line-height:1.6;font-size:15px}.budget-note{margin-top:32px;padding:22px 25px;background:#f4f1ea;line-height:1.6;color:#4f544e;border-left:3px solid #c91f35}.dark-section{position:relative;overflow:hidden;padding:clamp(85px,10vw,125px) 7%;background:#20241f;color:#fff}.dark-section .eyebrow{color:#b7c0b7}.dark-section .section-top{display:flex;justify-content:space-between;gap:50px;align-items:end}.dark-section .section-top>p{color:#c8cec7}.service-list{margin-top:55px;border-top:1px solid rgba(255,255,255,.18)}.service-list article{display:grid;grid-template-columns:80px 1fr;gap:25px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.18)}.service-list article>span{font-size:12px;color:#9ba49a}.service-list h3{font-size:25px;margin:0 0 8px}.service-list p{margin:0;color:#c8cec7;line-height:1.7}.feature{position:relative;min-height:70vh;overflow:hidden}.feature>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.feature:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,14,11,.65),rgba(10,14,11,.08))}.feature-copy{position:relative;z-index:2;padding:14vw 7%;color:#fff}.feature-copy .eyebrow{color:#e4e9e2}.feature-copy h2{font-size:clamp(48px,7vw,92px);line-height:.95;letter-spacing:-.04em}.gallery-section{padding:clamp(75px,9vw,115px) 7%;background:#f7f5ef}.section-top{display:flex;justify-content:space-between;gap:50px;align-items:end}.gallery{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin-top:45px}.gallery figure{margin:0;position:relative;overflow:hidden;background:#ddd}.gallery img{width:100%;height:470px;object-fit:cover;transition:transform .6s ease}.gallery figure:hover img{transform:scale(1.035)}.gallery figcaption{position:absolute;left:20px;bottom:18px;background:rgba(18,21,18,.78);color:#fff;padding:10px 13px;font-size:12px;letter-spacing:.04em}.process{position:relative;overflow:hidden;padding:clamp(80px,10vw,125px) 7%;background:#ebe8df}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#cfcfc7;margin-top:45px}.steps>div{background:#ebe8df;padding:30px 24px;min-height:225px}.steps b{color:#c91f35}.steps h3{font-size:20px;margin:22px 0 10px}.steps p{color:#5d625c;line-height:1.65}.area{padding:clamp(80px,10vw,125px) 7%;background:#f6f3ec}.locations{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}.locations span{padding:10px 13px;border:1px solid #d6d6ce;border-radius:999px;font-size:13px}.quote{position:relative;overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;padding:clamp(75px,9vw,115px) 7%;background:#20241f;color:#fff}.quote .eyebrow{color:#b7c0b7}.quote-copy>p{color:#d0d5ce}.contact{display:flex;flex-direction:column;gap:10px;margin-top:25px}.contact a{font-size:18px;font-weight:700}.quote form{display:grid;gap:15px}.quote label{display:grid;gap:7px;font-size:12px;letter-spacing:.04em;color:#d5d9d2}.quote input,.quote select,.quote textarea{width:100%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:#fff;padding:13px 14px;border-radius:3px;font:inherit;outline:none}.quote select option{color:#111}.quote input:focus,.quote select:focus,.quote textarea:focus{border-color:#fff}.quote small{font-size:11px;color:#aeb5ad;line-height:1.5}.consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:start;gap:9px!important;line-height:1.5}.consent input{width:auto;margin-top:3px}.quote .button{width:max-content}.quote #formNote{color:#cbd2c9;font-size:13px;line-height:1.5}footer{padding:40px 7%;background:#161916;color:#dfe4dc;display:grid;grid-template-columns:1fr auto;gap:25px;align-items:center}footer .footer-logo img{width:145px}.footer-links{display:flex;gap:20px;font-size:13px}footer p{grid-column:1/-1;margin:0;color:#899188;font-size:12px}@media(max-width:900px){.header nav{display:none;position:absolute;top:82px;left:0;right:0;background:#20241f;padding:20px 7%;flex-direction:column;align-items:stretch}.header nav.open{display:flex}.header nav a{padding:8px 0}.menu{display:block}.statement,.quote{grid-template-columns:1fr}.protection-grid{grid-template-columns:1fr}.investment-grid{grid-template-columns:1fr 1fr}.dark-section .section-top,.section-top{display:block}.steps{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr}.hero-stamp{display:none}}@media(max-width:560px){.header{height:72px}.header nav{top:72px}.header .logo-image{width:118px}.hero-content{padding-top:120px}.hero h1{font-size:49px}.investment-grid,.protection-points,.steps,.gallery{grid-template-columns:1fr}.gallery img{height:360px}.service-list article{grid-template-columns:45px 1fr}.quote .button{width:100%}footer{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}}
/* Soft, constant illuminated word */
.hero-glow-word {
  color: #fff9df;
  text-shadow:
    0 0 6px rgba(255, 249, 223, 0.75),
    0 0 14px rgba(255, 232, 170, 0.5),
    0 0 26px rgba(255, 215, 120, 0.28);
}
/* ================= CHRISTMAS 2026 UPDATES ================= */
.hero{background:#080a09;isolation:isolate}
.hero>img{display:none}
.shade{background:linear-gradient(90deg,rgba(5,7,6,.98) 0%,rgba(5,7,6,.96) 39%,rgba(5,7,6,.58) 67%,rgba(5,7,6,.12) 100%);z-index:1}
.hero-photo-side{position:absolute;z-index:1;right:2.5%;top:9%;width:min(49vw,720px);height:78%;overflow:hidden;border-radius:2px;opacity:.96;mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.25) 6%,#000 17%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.25) 6%,#000 17%,#000 88%,transparent 100%)}
.hero-photo-side:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,transparent 45%,rgba(5,7,6,.82) 100%);pointer-events:none}
.hero-photo-side img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.96) contrast(1.02)}
.hero-content{z-index:3;max-width:720px}
.hero-stamp{z-index:3}

/* Dedicated image slots for the sections you said you want to fill with AI/team photography. */
.statement-photo{grid-template-columns:.55fr 1.45fr}
.statement-main{min-width:0}
.photo-slot{position:relative;min-height:250px;margin-top:34px;border:1px dashed rgba(32,36,31,.28);background:linear-gradient(135deg,rgba(32,36,31,.035),rgba(201,31,53,.025));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.photo-slot:before{content:"✦";position:absolute;top:17px;right:20px;color:#c91f35;font-size:18px;opacity:.75}
.photo-slot span{font-size:11px;letter-spacing:.18em;font-weight:800;color:#7a8179}
.photo-slot small{margin-top:8px;color:#92988f;font-size:13px}

/* Insurance + lifetime warranty emphasis */
.protection-card .protection-point:nth-last-child(2) b{color:#9dd0b0}
.protection-card .protection-point:last-child b{color:#f3a1ad}

/* Phone rows */
.phone-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.phone-row span{font-size:10px;letter-spacing:.16em;color:#aeb7ae;font-weight:800;min-width:110px}
.phone-row a{font-size:18px;font-weight:800}
.phone-dfw a{color:#75c694!important}
.phone-dfw span{color:#75c694}

/* Tiny Christmas details — intentionally restrained */
.holiday-section{position:relative;overflow:hidden}
.holiday-float{position:absolute;pointer-events:none;line-height:1;z-index:0;opacity:.14}
.holiday-snow{right:5%;top:9%;font-size:34px;color:#17864d}
.holiday-snow.two{left:5%;right:auto;top:12%;font-size:27px;color:#c91f35}
.holiday-holly{right:4%;bottom:10%;font-size:46px;color:#13864a;transform:rotate(-24deg)}
.holiday-holly.two{left:4%;right:auto;top:12%;font-size:42px;color:#c91f35;transform:rotate(20deg)}
.holiday-ornament{right:7%;top:11%;font-size:36px;color:#c91f35;text-shadow:0 -9px 0 #13864a}

/* Texas holiday mark */
.texas-holiday-mark{width:100px;height:78px;margin:0 0 -4px auto;opacity:.72;color:#20241f}
.texas-holiday-mark svg{width:100%;height:100%;display:block}

/* Make the decorative strand read more like a real dark-green C9 system. */
.xmas-strand .wire{stroke:rgba(29,43,34,.96);stroke-width:2.15}
.xmas-strand .wire-highlight{stroke:rgba(102,130,111,.45);stroke-width:1}
.xmas-strand .socket{fill:#26382d;stroke:#16241b;stroke-width:.7}
.xmas-strand .bulb-glass{filter:drop-shadow(0 0 3px currentColor)}

@media(max-width:900px){
  .hero-photo-side{right:0;top:14%;width:70vw;height:52%;opacity:.7;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 85%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 85%,transparent)}
  .hero-content{padding-top:155px}
  .statement-photo{grid-template-columns:1fr}
  .photo-slot{min-height:220px}
  .texas-holiday-mark{margin-left:0;margin-right:auto}
}
@media(max-width:560px){
  .hero-photo-side{top:16%;width:100%;height:43%;opacity:.45}
  .hero-content{padding-top:135px}
  .photo-slot{min-height:190px}
  .phone-row{gap:6px}
  .phone-row span{min-width:auto;width:100%}
  .holiday-float{opacity:.1}
}
.trust-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:10px;letter-spacing:.16em;font-weight:800;color:#13864a;margin-bottom:10px}
.trust-line i{font-style:normal;color:#c91f35}

/* ================= FINAL CHRISTMAS POLISH ================= */
.section-photo{margin:36px 0 0;position:relative;overflow:hidden;background:#111;border-radius:2px;box-shadow:0 18px 50px rgba(16,20,17,.14)}
.section-photo img{display:block;width:100%;height:clamp(280px,38vw,510px);object-fit:cover;transition:transform .7s ease,filter .7s ease}
.section-photo:hover img{transform:scale(1.025);filter:saturate(1.04)}
.section-photo figcaption{position:absolute;left:18px;right:18px;bottom:18px;padding:12px 15px;background:rgba(12,15,13,.78);backdrop-filter:blur(5px);color:#fff;font-size:12px;letter-spacing:.05em;display:flex;justify-content:space-between;gap:12px;align-items:center}
.section-photo figcaption span{color:#c9d0c8}
.pricing-photo img{height:clamp(260px,32vw,430px);object-position:center 58%}
.protection-point{position:relative;padding-left:18px}
.protection-point:before{content:"";position:absolute;left:0;top:19px;width:7px;height:11px;border-radius:55% 55% 48% 48%;background:var(--holiday-red);box-shadow:0 0 9px rgba(201,31,53,.55)}
.protection-point:nth-child(even):before{background:var(--holiday-green);box-shadow:0 0 9px rgba(23,134,77,.5)}
.gallery{grid-template-columns:repeat(2,1fr);gap:18px}
.gallery figure{min-height:340px;box-shadow:0 12px 35px rgba(18,21,18,.08)}
.gallery img{height:clamp(320px,34vw,500px)}
.gallery figcaption{left:14px;right:14px;bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:12px}
.gallery figcaption strong{font-size:13px}
.gallery figcaption span{opacity:.82}
.quote-trust{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:20px 0 8px;font-size:10px;font-weight:800;letter-spacing:.14em;color:#7dd09a}
.quote-trust b{color:#c91f35}
.texas-outline{width:100px;height:70px;color:#20241f;margin:0 0 -5px auto;opacity:.8}
.texas-outline svg{width:100%;height:100%;display:block}
.texas-word{position:relative;display:inline-block}
.santa-hat{position:absolute;width:29px;height:20px;left:-7px;top:-22px;transform:rotate(-12deg);background:#c91f35;border-radius:18px 18px 3px 3px;clip-path:polygon(7% 100%,100% 100%,61% 0%)}
.santa-hat:before{content:"";position:absolute;left:0;right:-4px;bottom:-4px;height:7px;border-radius:999px;background:#fff}
.santa-hat:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;right:-2px;top:-3px}
.holiday-decor{position:absolute;z-index:2;pointer-events:none;opacity:.62;filter:drop-shadow(0 0 7px rgba(255,255,255,.08))}
.decor-gift{right:5%;top:32%;width:34px;height:30px;border:2px solid #c91f35;background:rgba(201,31,53,.09);transform:rotate(5deg)}
.decor-gift:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:4px;background:#17864d;transform:translateX(-50%)}
.decor-gift:after{content:"";position:absolute;left:0;right:0;top:8px;height:4px;background:#17864d}
.decor-gift span,.decor-gift i{position:absolute;width:13px;height:8px;border:2px solid #17864d;border-bottom:0;border-radius:50% 50% 0 0;top:-9px}
.decor-gift span{left:4px;transform:rotate(-25deg)}.decor-gift i{right:4px;transform:rotate(25deg)}
.decor-holly{left:3.5%;bottom:8%;font-size:18px;color:#17864d;transform:rotate(-16deg)}
.decor-holly span,.decor-holly b{color:#c91f35;font-size:18px}.decor-holly i{display:block;width:45px;height:15px;border-bottom:3px solid #17864d;border-radius:50%;transform:rotate(-20deg);position:absolute;left:0;top:7px}
@keyframes tinyTwinkle{0%,100%{opacity:.25;transform:scale(.95)}50%{opacity:.9;transform:scale(1.05)}}
.decor-gift,.decor-holly{animation:tinyTwinkle 4.8s ease-in-out infinite}

@media(max-width:900px){
  .gallery{grid-template-columns:1fr 1fr}
  .section-photo figcaption,.gallery figcaption{display:block}
  .section-photo figcaption span,.gallery figcaption span{display:block;margin-top:4px}
  .texas-outline{margin-left:0;margin-right:auto}
}
@media(max-width:560px){
  .gallery{grid-template-columns:1fr}
  .gallery figure{min-height:0}
  .gallery img{height:340px}
  .section-photo img,.pricing-photo img{height:300px}
  .decor-gift{right:6%;top:24%}
  .decor-holly{left:4%;bottom:5%}
}

/* ================= FINAL USER-POLISH PASS ================= */
/* The decorative Christmas details are intentionally restrained. The real C9 strand is the hero holiday element. */
.holiday-float,.holiday-decor{display:none!important}

/* Realistic commercial C9 strand: dark green wire, visible sockets, larger glowing bulbs, subtle shimmer. */
.xmas-strand{height:88px;opacity:1}
.xmas-strand .wire{stroke:#1d3327!important;stroke-width:2.8!important;stroke-linecap:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.xmas-strand .wire-highlight{stroke:rgba(110,143,121,.62)!important;stroke-width:1.05!important;stroke-linecap:round}
.xmas-strand .socket{fill:#24392d!important;stroke:#122219!important;stroke-width:.8!important}
.xmas-strand .bulb-glass{animation:realC9Glow 5.8s ease-in-out infinite!important;transform-origin:center;will-change:transform,opacity,filter}
.xmas-strand .bulb-1{animation-delay:-.1s!important}.xmas-strand .bulb-2{animation-delay:-.8s!important}.xmas-strand .bulb-3{animation-delay:-1.5s!important}.xmas-strand .bulb-4{animation-delay:-2.2s!important}.xmas-strand .bulb-5{animation-delay:-2.9s!important}.xmas-strand .bulb-6{animation-delay:-3.6s!important}.xmas-strand .bulb-7{animation-delay:-4.3s!important}.xmas-strand .bulb-8{animation-delay:-5s!important}.xmas-strand .bulb-9{animation-delay:-5.7s!important}
@keyframes realC9Glow{0%,100%{opacity:.88;filter:drop-shadow(0 0 4px currentColor);transform:translateY(var(--hang)) scale(1.06)}48%{opacity:.94;filter:drop-shadow(0 0 6px currentColor);transform:translateY(var(--hang)) scale(1.08)}55%{opacity:1;filter:drop-shadow(0 0 13px currentColor);transform:translateY(calc(var(--hang) - .5px)) scale(1.12)}65%{opacity:.93;filter:drop-shadow(0 0 7px currentColor);transform:translateY(var(--hang)) scale(1.08)}}
.xmas-strand.subtle{height:72px;opacity:1;top:-17px}
.xmas-strand.dark .wire{stroke:#193326!important}
.xmas-strand.dark .wire-highlight{stroke:rgba(113,151,126,.65)!important}

/* Protection bullets become miniature hanging C9 bulbs instead of plain dots. */
.protection-point{padding-left:39px!important;position:relative}
.protection-point:before{content:"";position:absolute;left:3px;top:17px;width:10px;height:7px;border-radius:2px;background:#263a2d;border:1px solid #14251b;box-shadow:none;z-index:2}
.protection-point:after{content:"";position:absolute;left:1px;top:23px;width:14px;height:19px;border-radius:52% 52% 48% 48%;background:var(--holiday-red);box-shadow:0 0 11px rgba(201,31,53,.7),0 0 22px rgba(201,31,53,.25)}
.protection-point:nth-child(even):after{background:var(--holiday-green);box-shadow:0 0 11px rgba(23,134,77,.72),0 0 22px rgba(23,134,77,.26)}
.protection-point:nth-child(3n):after{background:var(--holiday-warm);box-shadow:0 0 11px rgba(255,231,163,.72),0 0 22px rgba(255,231,163,.26)}
.protection-point b{padding-left:0}

/* Clean, centered photo framing. Keep the subject in the middle rather than letting the card reveal an edge. */
.section-photo,.pricing-photo{background:#111}
.section-photo img,.pricing-photo img{object-fit:cover;object-position:50% 50%;width:100%}
.pricing-photo img{object-position:50% 52%}
.gallery img{object-position:50% 50%}

/* The large featured photo should stay clean without a portfolio caption. */
.feature-caption{display:none!important}

/* The quote-page "glow" uses the exact same illuminated treatment as the home hero word. */
.quote-copy h2 .hero-glow-word{color:#fff9df;text-shadow:0 0 6px rgba(255,249,223,.75),0 0 14px rgba(255,232,170,.5),0 0 26px rgba(255,215,120,.28)}

/* Intentional Texas detail: keep only the Santa hat attached to the word itself. */
.santa-hat{filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}

@media(max-width:700px){
  .xmas-strand{height:70px}
  .xmas-strand.subtle{height:58px}
}
@media(prefers-reduced-motion:reduce){.xmas-strand .bulb-glass{animation:none!important;opacity:.95}}

/* Investment cards: a small, unmistakable C9 bulb detail instead of a plain dot. */
.investment-item:before{content:"";position:absolute;top:18px;right:20px;width:9px;height:7px;border-radius:2px;background:#26392e;border:1px solid #15251b;box-shadow:none;opacity:1}
.investment-item:after{content:"";position:absolute;top:24px;right:17px;width:15px;height:20px;border-radius:52% 52% 48% 48%;background:var(--holiday-red);box-shadow:0 0 9px rgba(201,31,53,.58),0 0 18px rgba(201,31,53,.18)}
.investment-item:nth-child(even):after{background:var(--holiday-green);box-shadow:0 0 9px rgba(23,134,77,.62),0 0 18px rgba(23,134,77,.2)}
.investment-item:nth-child(3n):after{background:var(--holiday-warm);box-shadow:0 0 9px rgba(255,231,163,.65),0 0 18px rgba(255,231,163,.2)}


/* ================= FINAL REVISION — USER APPROVED POLISH ================= */
/* One consistent commercial C9 strand everywhere. */
.xmas-strand,
.xmas-strand.subtle{
  height:135px !important;
  opacity:1 !important;
}
.xmas-strand svg,
.xmas-strand.subtle svg{
  width:100% !important;
  height:100% !important;
  transform:none !important;
}
.xmas-strand .wire{
  stroke:#1d3327 !important;
  stroke-width:2.6 !important;
  stroke-linecap:round !important;
}
.xmas-strand .wire-highlight{
  stroke:rgba(116,145,124,.58) !important;
  stroke-width:1 !important;
  stroke-linecap:round !important;
}
.xmas-strand .socket{
  fill:#24392d !important;
  stroke:#122219 !important;
  stroke-width:.8 !important;
}
.xmas-strand .bulb-glass{
  animation:realC9Glow 5.8s ease-in-out infinite !important;
  transform-origin:center;
}
/* Keep the same red / green / warm-white order on every strand. */
.xmas-strand .bulb-1,.xmas-strand .bulb-4,.xmas-strand .bulb-7{color:#e6334d !important}
.xmas-strand .bulb-2,.xmas-strand .bulb-5,.xmas-strand .bulb-8{color:#28b866 !important}
.xmas-strand .bulb-3,.xmas-strand .bulb-6,.xmas-strand .bulb-9{color:#ffe7a3 !important}
.xmas-strand .bulb-1{animation-delay:-.1s !important}
.xmas-strand .bulb-2{animation-delay:-.8s !important}
.xmas-strand .bulb-3{animation-delay:-1.5s !important}
.xmas-strand .bulb-4{animation-delay:-2.2s !important}
.xmas-strand .bulb-5{animation-delay:-2.9s !important}
.xmas-strand .bulb-6{animation-delay:-3.6s !important}
.xmas-strand .bulb-7{animation-delay:-4.3s !important}
.xmas-strand .bulb-8{animation-delay:-5s !important}
.xmas-strand .bulb-9{animation-delay:-5.7s !important}
@keyframes realC9Glow{
  0%,100%{opacity:.88;filter:drop-shadow(0 0 4px currentColor);transform:translateY(var(--hang)) scale(1.04)}
  48%{opacity:.94;filter:drop-shadow(0 0 6px currentColor);transform:translateY(var(--hang)) scale(1.06)}
  55%{opacity:1;filter:drop-shadow(0 0 13px currentColor);transform:translateY(calc(var(--hang) - .5px)) scale(1.10)}
  65%{opacity:.93;filter:drop-shadow(0 0 7px currentColor);transform:translateY(var(--hang)) scale(1.06)}
}

/* Hero image: still fades naturally into the black copy area, but the photo remains clearly visible. */
.hero .shade{
  background:linear-gradient(90deg,
    rgba(5,7,6,.78) 0%,
    rgba(5,7,6,.64) 34%,
    rgba(5,7,6,.34) 61%,
    rgba(5,7,6,.06) 100%) !important;
}
.hero-photo-side{
  opacity:.98 !important;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.25) 5%,#000 16%,#000 90%,transparent 100%) !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.25) 5%,#000 16%,#000 90%,transparent 100%) !important;
}
.hero-photo-side:after{
  background:linear-gradient(180deg,rgba(0,0,0,.02) 0%,transparent 55%,rgba(5,7,6,.38) 100%) !important;
}

/* Portfolio descriptions live below the photos so no watermark/logo is covered. */
.gallery figure{
  overflow:visible !important;
  background:transparent !important;
  box-shadow:none !important;
}
.gallery img{
  display:block;
  width:100%;
  height:clamp(320px,34vw,500px);
  object-fit:cover !important;
  object-position:50% 50% !important;
  background:#111;
  box-shadow:0 12px 35px rgba(18,21,18,.08);
}
.gallery figcaption{
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  margin:0 !important;
  padding:14px 4px 2px !important;
  background:transparent !important;
  backdrop-filter:none !important;
  color:#20241f !important;
  display:flex !important;
  justify-content:space-between !important;
  align-items:baseline !important;
  gap:14px !important;
  font-size:12px !important;
  letter-spacing:.04em !important;
}
.gallery figcaption strong{font-size:13px !important;color:#20241f !important}
.gallery figcaption span{color:#6a7068 !important;opacity:1 !important}

/* Exact same C9 bulb treatment for protection + investment accents. */
.protection-point,
.investment-item{position:relative}
.protection-point:before,
.protection-point:after,
.investment-item:before,
.investment-item:after{content:none !important}
.c9-accent{
  position:absolute;
  width:20px;
  height:46px;
  display:block;
  pointer-events:none;
  --c9-color:#ffe7a3;
  --c9-shadow:rgba(255,231,163,.7);
}
.c9-accent .c9-socket{
  position:absolute;
  left:5px;
  top:0;
  width:10px;
  height:8px;
  border-radius:2px;
  background:#24392d;
  border:1px solid #122219;
}
.c9-accent .c9-bulb{
  position:absolute;
  left:3px;
  top:7px;
  width:14px;
  height:20px;
  border-radius:52% 52% 48% 48%;
  background:radial-gradient(circle at 36% 25%,#fff 0 8%,var(--c9-color) 30%,color-mix(in srgb,var(--c9-color) 55%,#111) 100%);
  box-shadow:0 0 5px var(--c9-color),0 0 12px var(--c9-shadow);
  animation:miniC9Glow 5.8s ease-in-out infinite;
}
.c9-accent .c9-bulb:after{
  content:"";
  position:absolute;
  left:3px;
  top:3px;
  width:3px;
  height:5px;
  border-radius:50%;
  background:rgba(255,255,255,.72);
}
.c9-red{--c9-color:#e6334d;--c9-shadow:rgba(230,51,77,.72)}
.c9-green{--c9-color:#28b866;--c9-shadow:rgba(40,184,102,.72)}
.c9-warm{--c9-color:#ffe7a3;--c9-shadow:rgba(255,231,163,.72)}
@keyframes miniC9Glow{
  0%,100%{opacity:.88;filter:drop-shadow(0 0 3px currentColor);transform:scale(1)}
  48%{opacity:.94;transform:scale(1.02)}
  55%{opacity:1;filter:drop-shadow(0 0 9px currentColor);transform:scale(1.07)}
  65%{opacity:.93;filter:drop-shadow(0 0 5px currentColor);transform:scale(1.02)}
}
.protection-point .c9-accent{left:0;top:14px}
.investment-item .c9-accent{right:16px;top:17px}
.investment-item b{padding-right:28px !important}

/* No floating holiday clip-art. The real light strands carry the Christmas styling. */
.holiday-float,.holiday-decor,.texas-outline{display:none !important}

/* The Santa hat remains attached to the T/word itself, not floating elsewhere. */
.texas-word{position:relative;display:inline-block}
.santa-hat{left:-7px;top:-22px}

@media(max-width:700px){
  .xmas-strand,.xmas-strand.subtle{height:70px !important}
  .xmas-strand svg,.xmas-strand.subtle svg{transform:none !important}
}
@media(max-width:560px){
  .gallery figcaption{display:block !important}
  .gallery figcaption span{display:block !important;margin-top:4px}
}


/* Exact C9 accent: the small card/protection bulbs reuse the same SVG bulb silhouette as the strands. */
.c9-symbol-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.c9-accent{
  position:absolute;
  width:20px !important;
  height:31px !important;
  display:block;
  pointer-events:none;
  overflow:visible;
  animation:miniC9Glow 5.8s ease-in-out infinite;
  transform-origin:center;
}
.c9-accent use{fill:currentColor}
.c9-red{color:#e6334d;filter:drop-shadow(0 0 4px rgba(230,51,77,.7))}
.c9-green{color:#28b866;filter:drop-shadow(0 0 4px rgba(40,184,102,.7))}
.c9-warm{color:#ffe7a3;filter:drop-shadow(0 0 4px rgba(255,231,163,.7))}
@keyframes miniC9Glow{
  0%,100%{opacity:.88;transform:scale(1);filter:drop-shadow(0 0 4px currentColor)}
  48%{opacity:.94;transform:scale(1.02);filter:drop-shadow(0 0 5px currentColor)}
  55%{opacity:1;transform:scale(1.07);filter:drop-shadow(0 0 10px currentColor)}
  65%{opacity:.93;transform:scale(1.02);filter:drop-shadow(0 0 6px currentColor)}
}
.protection-point .c9-accent{left:0;top:14px}
.investment-item .c9-accent{right:16px;top:17px}

/* Bottom strands keep the same orientation as every other strand. */
.xmas-strand.bottom{transform:none !important}

/* ================= 2026 FINAL BUILD — DIRECT SITE REVISION ================= */
/* Keep the hero artwork anchored into the lower black area rather than floating mid-frame. */
.hero-photo-side{
  top:auto !important;
  bottom:0 !important;
  height:78% !important;
  width:min(50vw,740px) !important;
}
.hero-stamp{bottom:5% !important;right:5% !important}

/* The glowing word treatment is shared across the site. */
.dark-section h2 em,
.process h2 em{
  color:#fff9df;
  text-shadow:0 0 6px rgba(255,249,223,.75),0 0 14px rgba(255,232,170,.5),0 0 26px rgba(255,215,120,.28);
}

/* Every small bulb uses the same C9 silhouette: socket first, glass second. */
.c9-accent{
  width:20px !important;
  height:31px !important;
  transform-origin:center top !important;
}
.c9-accent use{color:currentColor;fill:currentColor}
.c9-accent .c9-socket{z-index:3}
.c9-accent .c9-bulb{z-index:2}

/* Experience page: a single intentional vertical light strand with Santa hanging from it. */
.statement-photo{position:relative;overflow:visible !important}
.statement-rail{position:relative;min-height:100%;padding-top:0}
.santa-light-rail{
  position:absolute;
  left:-18px;
  top:76px;
  width:150px;
  height:570px;
  pointer-events:none;
  z-index:3;
}
.vertical-light-strand{position:absolute;left:8px;top:0;width:70px;height:100%;overflow:visible}
.rail-wire{fill:none;stroke:#1d3327;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.rail-bulb{transform-origin:center;animation:railGlow 5.8s ease-in-out infinite}
.rail-bulb .rail-socket{fill:#24392d;stroke:#122219;stroke-width:.8}
.rail-red{color:#e6334d}.rail-green{color:#28b866}.rail-warm{color:#ffe7a3}
.rail-bulb path{fill:currentColor;filter:drop-shadow(0 0 5px currentColor) drop-shadow(0 0 10px currentColor)}
@keyframes railGlow{0%,100%{opacity:.9;transform:scale(1)}55%{opacity:1;transform:scale(1.08)}65%{opacity:.94;transform:scale(1.02)}}
.santa-climber{
  position:absolute;
  left:5px;
  top:142px;
  width:142px;
  height:190px;
  transform:rotate(-8deg);
  filter:drop-shadow(0 7px 9px rgba(20,24,20,.18));
}

/* Service area: a real visual Texas treatment sits to the right instead of a tiny floating hat. */
.area{
  background:#f6f3ec !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(300px,430px);
  align-items:center;
  gap:45px;
  position:relative;
  overflow:hidden;
}
.area-copy{max-width:820px}
.texas-feature{justify-self:end;width:min(100%,420px);padding-right:1%;background:#f6f3ec}
.texas-feature img{width:100%;height:auto;display:block;mix-blend-mode:normal}
.texas-feature svg{width:100%;height:auto;display:block;overflow:visible}
.texas-map{fill:url(#texasFill);stroke:#26362c;stroke-width:3;stroke-linejoin:round;filter:drop-shadow(0 15px 18px rgba(21,27,23,.15))}
.texas-lights circle{fill:#ffe7a3;filter:drop-shadow(0 0 5px #ffe7a3)}
.texas-lights circle:nth-child(3n+1){fill:#e6334d;filter:drop-shadow(0 0 5px #e6334d)}
.texas-lights circle:nth-child(3n+2){fill:#28b866;filter:drop-shadow(0 0 5px #28b866)}
.texas-label{fill:#fff9df;font-family:"Playfair Display",Georgia,serif;font-size:43px;font-style:italic;font-weight:600;paint-order:stroke;stroke:#172019;stroke-width:1.5px}
.texas-santa-hat{filter:drop-shadow(0 3px 3px rgba(0,0,0,.2))}
.texas-word{display:inline}
.santa-hat{display:none !important}

/* No accidental decorative clip-art. */
.holiday-float,.holiday-decor,.decor-gift,.decor-holly{display:none !important}

@media(max-width:900px){
  .hero-photo-side{width:58vw !important;height:72% !important}
  .statement-rail{min-height:0}
  .santa-light-rail{left:-8px;top:70px;transform:scale(.82);transform-origin:top left}
  .area{grid-template-columns:1fr !important}
  .texas-feature{justify-self:center;width:min(100%,360px);margin-top:8px}
}
@media(max-width:560px){
  .hero-photo-side{width:100% !important;height:62% !important;right:0 !important;opacity:.72 !important}
  .hero-stamp{display:none !important}
  .statement-rail{display:none}
  .area{gap:20px}
  .texas-feature{width:min(100%,300px)}
}

/* Final consistency details */
.xmas-strand{z-index:30 !important;overflow:visible !important}
.xmas-strand.subtle{z-index:30 !important}
.pricing-photo{overflow:visible !important}
.pricing-photo figcaption{
  position:static !important;
  display:flex !important;
  justify-content:space-between;
  align-items:baseline;
  gap:14px;
  margin:0 !important;
  padding:14px 4px 2px !important;
  background:transparent !important;
  color:#20241f !important;
  font-size:12px;
  letter-spacing:.04em;
}
.pricing-photo figcaption strong{font-size:13px;color:#20241f}
.pricing-photo figcaption span{color:#6a7068}
@media(max-width:560px){.pricing-photo figcaption{display:block !important}.pricing-photo figcaption span{display:block;margin-top:4px}}

/* Real Santa photo replaces the illustrated/coded Santa on The Experience section. */
.santa-photo-wrap{
  position:absolute;
  left:-18px;
  top:58px;
  width:245px;
  height:650px;
  pointer-events:none;
  z-index:3;
  overflow:visible;
}
.santa-photo{
  width:245px;
  height:auto;
  max-width:none;
  display:block;
  object-fit:contain;
  mix-blend-mode:multiply;
  filter:saturate(1.03) contrast(1.01);
  transform:rotate(-1.5deg);
  transform-origin:top center;
}
@media(max-width:900px){
  .santa-photo-wrap{left:-8px;top:52px;transform:scale(.82);transform-origin:top left}
}
@media(max-width:560px){
  .santa-photo-wrap{display:none}
}


/* Final Santa-photo treatment: larger, edge-faded, and visually integrated with the cream page. */
.santa-photo-wrap{
  width:245px !important;
  height:650px !important;
  left:-58px !important;
  top:44px !important;
  overflow:hidden !important;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.72) 9%, #000 22%, #000 84%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 5%, #000 92%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.72) 9%, #000 22%, #000 84%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 5%, #000 92%, transparent 100%);
  mask-composite:intersect;
}
.santa-photo{
  width:245px !important;
  height:auto !important;
  mix-blend-mode:multiply !important;
  filter:saturate(1.04) contrast(1.02) brightness(1.02) !important;
  transform:rotate(-1deg) scale(1.02) !important;
  transform-origin:top center !important;
}
/* Every C9 glass body must sit below the black socket/cap, never over it. */
.xmas-strand .socket{position:relative;z-index:4}
.xmas-strand .bulb-glass path,.xmas-strand .bulb-glass ellipse{position:relative;z-index:2}
@media(max-width:900px){
  .santa-photo-wrap{left:-38px !important;top:44px !important;transform:scale(.88) !important;transform-origin:top left !important}
}
@media(max-width:560px){.santa-photo-wrap{display:none !important}}


/* Final requested treatment: pricing photo caption is plain black text below the image. */
.pricing-photo{overflow:visible !important;background:transparent !important;box-shadow:0 18px 50px rgba(16,20,17,.14)}
.pricing-photo figcaption.photo-caption{position:static !important;display:flex !important;justify-content:space-between !important;align-items:baseline !important;gap:14px !important;margin:0 !important;padding:12px 4px 0 !important;background:transparent !important;color:#20241f !important;backdrop-filter:none !important;box-shadow:none !important;font-size:13px !important;letter-spacing:.02em !important}
.pricing-photo figcaption.photo-caption strong{font-size:14px !important;color:#20241f !important}
.pricing-photo figcaption.photo-caption span{color:#20241f !important;opacity:1 !important}

/* Use the user's real Texas holiday image instead of the coded map. */
.texas-feature.real-texas-feature{justify-self:end;width:min(100%,420px);padding:0 !important;display:flex;align-items:center;justify-content:center;background:#f6f3ec !important}
.texas-feature.real-texas-feature img{width:100%;height:auto;display:block;object-fit:contain;mix-blend-mode:normal;filter:none}
@media(max-width:900px){.texas-feature.real-texas-feature{justify-self:center;width:min(100%,380px);margin-top:8px}}
@media(max-width:560px){.pricing-photo figcaption.photo-caption{display:block !important}.pricing-photo figcaption.photo-caption span{display:block !important;margin-top:4px}.texas-feature.real-texas-feature{width:min(100%,320px)}}

/* Final polish: make the "lights on" moment read clearly as a green holiday glow. */
.process h2 em{
  color:#e6334d !important;
  text-shadow:0 0 5px rgba(230,51,77,.65),0 0 12px rgba(230,51,77,.48),0 0 24px rgba(230,51,77,.28) !important;
}

/* Final C9 card/protection bulb alignment: visible dark socket above the glass,
   with a small intentional gap so the two parts never visually overlap. */
.c9-accent{
  height:35px !important;
  top:29px !important;
  transform-origin:center top !important;
}
.protection-point .c9-accent{top:29px !important;}
.investment-item .c9-accent{top:32px !important;}
.c9-accent use{display:block;}

/* Keep the card text clear of the moved bulb. */
.investment-item b{padding-right:30px !important;}

/* ==========================================================
   REALISTIC STRING LIGHT IMAGE — REPLACES CODE-DRAWN STRANDS
   ========================================================== */
.xmas-strand {
  position: absolute !important;
  overflow: visible !important;
  z-index: 30 !important;
  isolation: isolate;
}

.xmas-strand .realistic-string-light {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: fill !important;
  object-position: center !important;
  z-index: 2 !important;
  opacity: 1 !important;
  pointer-events: none !important;
  user-select: none !important;
}

/* A soft duplicate glow passes over the real bulbs so the lights
   gently shimmer instead of looking like a static PNG. */
.xmas-strand::after {
  content: "";
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  pointer-events: none !important;
  background: url("christmas-string-realistic.png") center / 100% 100% no-repeat;
  filter: blur(7px) saturate(1.08) brightness(1.04);
  opacity: .08;
  transform: scale(1.012);
  animation: realisticStringGlow 4.8s ease-in-out infinite;
  will-change: opacity, filter;
}

@keyframes realisticStringImageFlicker {
  0%, 100% { opacity: .94; }
  22% { opacity: 1; }
  47% { opacity: .91; }
  52% { opacity: 1; }
  78% { opacity: .95; }
}

@keyframes realisticStringGlow {
  0%, 100% {
    opacity: .05;
    filter: blur(7px) saturate(1.02) brightness(1.01);
  }
  28% {
    opacity: .09;
    filter: blur(7.5px) saturate(1.06) brightness(1.03);
  }
  44% {
    opacity: .14;
    filter: blur(8px) saturate(1.10) brightness(1.06);
  }
  52% {
    opacity: .07;
    filter: blur(7px) saturate(1.04) brightness(1.02);
  }
  72% {
    opacity: .10;
    filter: blur(7.5px) saturate(1.07) brightness(1.04);
  }
}

/* The image already contains the correct wire/socket/bulb relationship. */
.xmas-strand svg { display: none !important; }
.xmas-strand .wire,
.xmas-strand .wire-highlight,
.xmas-strand .socket,
.xmas-strand .bulb-glass { display: none !important; }

/* Keep the bottom strand upright — the image itself is already oriented correctly. */
.xmas-strand.bottom {
  transform: none !important;
}

/* Preserve the slightly smaller decorative strands used between sections. */
.xmas-strand.subtle {
  overflow: visible !important;
}

@media (max-width: 700px) {
  .xmas-strand, .xmas-strand.subtle { height:105px !important; }
  .xmas-strand .realistic-string-light {
    object-fit: fill !important;
  }
  .xmas-strand::after {
    filter: blur(6px) saturate(1.06) brightness(1.03);
  }
}

@media (prefers-reduced-motion: reduce) {
  .xmas-strand::after {
    animation: none !important;
    opacity: .18 !important;
  }
}


/* ==========================================================
   ANIMATED REALISTIC STRING LIGHTS
   The transparent animated WebP contains the actual wire,
   sockets and bulbs. Keep it above section boundaries.
   ========================================================== */
.xmas-strand {
  overflow: visible !important;
  z-index: 9999 !important;
}

.xmas-strand .realistic-string-light {
  content: url("christmas-string-flicker.webp") !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  object-position: center !important;
  opacity: 1 !important;
  z-index: 10000 !important;
  pointer-events: none !important;
}

/* The animation is already inside the WebP; do not stack a second
   glow layer over it, which makes the bulbs look blurry. */
.xmas-strand::after {
  display: none !important;
}

.xmas-strand svg,
.xmas-strand .wire,
.xmas-strand .wire-highlight,
.xmas-strand .socket,
.xmas-strand .bulb-glass {
  display: none !important;
}

@media (max-width: 700px) {
  .xmas-strand .realistic-string-light {
    width: 100% !important;
    height: 100% !important;
  }
}


/* ==========================================================
   SEQUENTIAL CHRISTMAS LIGHT FLICKER + GENTLE STRAND WAVE
   Each bulb brightens in turn in the animated transparent WebP.
   The image gently rises/falls so the strand feels alive across
   the transition between adjacent page sections.
   ========================================================== */
@keyframes xmasStrandWaveMotion {
  0%, 100% { translate: 0 0; }
  25% { translate: 0 -4px; }
  50% { translate: 0 2px; }
  75% { translate: 0 -2px; }
}
.xmas-strand .realistic-string-light {
  animation: xmasStrandWaveMotion 5.2s ease-in-out infinite !important;
  will-change: translate;
}
@media (prefers-reduced-motion: reduce) {
  .xmas-strand .realistic-string-light {
    animation: none !important;
  }
}


/* Sequential C9 sparkle: the animated transparent WebP lights one bulb at a time.
   A small, slow wave lets the strand drift naturally across section boundaries. */
.xmas-strand .realistic-string-light {
  animation: stringStrandWave 4.8s ease-in-out infinite;
  transform-origin: center top;
  will-change: transform;
}
@keyframes stringStrandWave {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(3px) rotate(.12deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  75% { transform: translateY(2px) rotate(-.12deg); }
}
@media (prefers-reduced-motion: reduce) {
  .xmas-strand .realistic-string-light { animation: none !important; }
}
