/* Window Warriors campaign landing pages — intentionally layered on top of the core site. */
.campaign-page{background:#fff;color:#261d25}
.campaign-page .site-header{box-shadow:0 10px 36px rgba(41,17,36,.08)}

.campaign-hero{position:relative;overflow:hidden;background:#35102f;color:#fff;min-height:690px;display:grid;align-items:center}

.campaign-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(38,7,31,.94) 0%,rgba(38,7,31,.76) 44%,rgba(38,7,31,.12) 76%,rgba(38,7,31,.35) 100%)}

.campaign-hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}

.campaign-hero .shell{position:relative;z-index:2;width:min(var(--site-width),calc(100% - 48px));margin-inline:auto;padding-top:76px;padding-bottom:76px}

.seasonal-offer-badge{position:absolute;z-index:3;right:clamp(22px,5vw,74px);top:clamp(24px,5vw,60px);width:154px;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px;border-radius:50%;background:linear-gradient(145deg,#ed1678,#b70d5e);color:#fff;border:2px solid rgba(255,255,255,.82);box-shadow:0 16px 38px rgba(36,7,30,.38),inset 0 0 0 5px rgba(255,255,255,.1);transform:rotate(5deg);text-transform:uppercase}
.seasonal-offer-value{display:block;font-size:29px;line-height:1;font-weight:950;letter-spacing:-.04em}
.seasonal-offer-label{display:block;max-width:105px;margin-top:7px;font-size:11px;line-height:1.25;font-weight:850;letter-spacing:.08em}

.campaign-hero-copy{max-width:700px}
.campaign-kicker{display:inline-flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.09);backdrop-filter:blur(8px)}

.campaign-hero h1{font-size:clamp(48px,7vw,88px);line-height:.93;letter-spacing:-.055em;margin:26px 0 24px;max-width:780px}
.campaign-hero .hero-lead{font-size:clamp(19px,2vw,24px);line-height:1.55;max-width:650px;color:rgba(255,255,255,.88)}

.campaign-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:34px}
.campaign-actions .button{min-height:54px}
.button-campaign{background:#ed1678;color:#fff;border-color:#ed1678}
.button-campaign:hover{background:#c90f65;border-color:#c90f65}
.button-ghost-light{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.55)}

.campaign-proof{display:flex;flex-wrap:wrap;gap:18px 28px;margin-top:38px;font-size:14px;font-weight:700;color:#fff}
.campaign-proof span{display:flex;align-items:center;gap:8px}
.campaign-proof span:before{content:"✓";display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#ed1678}

.honest-offer-strip{position:relative;z-index:3;background:#fff;border-bottom:1px solid #eadde5;box-shadow:0 12px 38px rgba(64,19,54,.07)}
.honest-offer-grid{display:grid;grid-template-columns:.58fr 1.42fr;gap:34px;align-items:center;padding-top:30px;padding-bottom:30px}
.honest-offer-label{display:flex;align-items:center;gap:13px;font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#b90b60}
.honest-offer-label:before{content:"£";display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#4b123f;color:#fff;font-size:20px;letter-spacing:0}
.honest-offer-copy{font-size:17px;line-height:1.58;color:#3c2b37}
.honest-offer-copy strong{color:#4b123f}
.offer-callout{padding:34px;border-radius:24px;background:linear-gradient(135deg,#fff5f9,#fff);border:1px solid #ead8e2}
.offer-callout h3{font-size:28px;margin:0 0 10px}
.offer-callout p{margin:0;color:#675763;line-height:1.65}
.offer-callout .offer-emphasis{display:block;margin-top:16px;color:#b90b60;font-weight:900}

.campaign-phone-strip{background:#4b123f;color:#fff;border-top:1px solid rgba(255,255,255,.1)}
.campaign-phone-inner{min-height:66px;display:flex;align-items:center;justify-content:center;gap:24px 34px;flex-wrap:wrap}
.campaign-phone-intro{font-weight:900}
.campaign-phone-intro span{display:block;color:#ffb8d6;font-size:12px;letter-spacing:.11em;text-transform:uppercase;margin-bottom:2px}
.campaign-phone-link{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;padding:8px 14px;border-left:1px solid rgba(255,255,255,.2)}
.campaign-phone-link small{display:block;color:rgba(255,255,255,.7);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.campaign-phone-link strong{display:block;font-size:20px;letter-spacing:.01em}
.campaign-phone-link:hover strong{text-decoration:underline}
.campaign-availability{display:inline-flex;align-items:center;gap:9px;margin-top:22px;color:#fff;font-weight:800;font-size:14px}
.campaign-availability:before{content:"";width:10px;height:10px;border-radius:50%;background:#4ce08c;box-shadow:0 0 0 5px rgba(76,224,140,.13)}

.campaign-call-panel{padding:0 0 86px;background:#fff}
.campaign-call-box{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:34px 38px;border-radius:26px;background:linear-gradient(125deg,#32102b,#5c174d);color:#fff;box-shadow:0 24px 58px rgba(54,16,45,.2)}
.campaign-call-box h2{font-size:clamp(30px,4vw,46px);line-height:1.05;margin:7px 0 8px}
.campaign-call-box p{margin:0;color:rgba(255,255,255,.78);font-size:17px}
.campaign-call-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.campaign-call-button{display:block;padding:13px 18px;border-radius:13px;background:#fff;color:#4b123f;text-decoration:none;min-width:205px}
.campaign-call-button small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#7a6675}
.campaign-call-button strong{font-size:20px}
.campaign-call-button:hover{transform:translateY(-2px)}

.form-direct-call{margin:26px 0;padding:20px;border-radius:16px;background:#4b123f;color:#fff}
.form-direct-call strong{display:block;font-size:18px}
.form-direct-call span{display:block;color:rgba(255,255,255,.73);margin:4px 0 12px}
.form-direct-numbers{display:flex;gap:9px;flex-wrap:wrap}
.form-direct-numbers a{color:#fff;font-weight:850;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45)}

.mobile-conversion-bar{display:none;position:fixed;z-index:90;left:10px;right:10px;bottom:10px;gap:8px}
.mobile-conversion-bar a{position:static!important;display:grid!important;place-items:center;flex:1;min-height:54px;border-radius:14px;text-decoration:none;font-weight:900;box-shadow:0 12px 32px rgba(45,10,36,.3)}
.mobile-call-button{background:#4b123f;color:#fff}
.mobile-conversion-bar .mobile-campaign-cta{background:#ed1678;color:#fff;padding:10px 12px;font-size:14px;text-align:center}

.season-panel{background:linear-gradient(125deg,#27152a,#4b123f 55%,#6e1c5d);color:#fff;position:relative;overflow:hidden}
.season-panel:after{content:"";position:absolute;width:480px;height:480px;border-radius:50%;right:-170px;top:-260px;border:80px solid rgba(255,255,255,.035)}

.season-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.season-tag{color:#ffb8d6;font-weight:900;letter-spacing:.17em;text-transform:uppercase}
.season-panel h2{font-size:clamp(42px,5vw,72px);line-height:.96;margin:12px 0 18px}
.season-card{position:relative;z-index:1;padding:34px;border:1px solid rgba(255,255,255,.15);border-radius:26px;background:rgba(255,255,255,.08);box-shadow:0 20px 60px rgba(0,0,0,.2);backdrop-filter:blur(8px)}

.campaign-section{padding:92px 0}
.campaign-section.soft{background:#fbf5f8}
.campaign-section.ink{background:#24151f;color:#fff}
.campaign-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);gap:56px;align-items:end;margin-bottom:46px}
.campaign-intro h2,.campaign-copy h2{font-size:clamp(38px,5vw,62px);line-height:1.02;letter-spacing:-.04em;margin:10px 0 0}
.campaign-intro p{font-size:18px;line-height:1.7;color:#665864;margin:0}
.ink .campaign-intro p{color:rgba(255,255,255,.74)}

.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.benefit-card{padding:30px 26px;border:1px solid #eadde5;border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(65,19,55,.06)}
.benefit-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#fff0f7;color:#b90b60;font-size:22px;font-weight:900}
.benefit-card h3{margin:22px 0 10px;font-size:21px}
.benefit-card p{margin:0;color:#665864;line-height:1.65}

.photo-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:270px 270px;gap:16px}
.photo-card{position:relative;overflow:hidden;border-radius:22px;background:#eee}
.photo-card:first-child{grid-row:1/3}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.photo-card:hover img{transform:scale(1.025)}
.photo-caption{position:absolute;left:14px;right:14px;bottom:14px;padding:11px 13px;border-radius:12px;background:rgba(36,16,30,.8);backdrop-filter:blur(7px);color:#fff;font-size:13px;font-weight:750}

.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:steps}
.process-step{position:relative;padding:34px 28px 30px;border-top:1px solid #dbcbd4;counter-increment:steps}
.process-step:before{content:"0" counter(steps);display:block;color:#d41070;font-weight:900;font-size:15px;letter-spacing:.12em;margin-bottom:34px}
.process-step:not(:last-child):after{content:"";position:absolute;right:0;top:30px;bottom:30px;width:1px;background:#e3d6de}
.process-step h3{font-size:22px;margin:0 0 10px}
.process-step p{color:#665864;line-height:1.65;margin:0}

.range-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.range-card{border-radius:26px;background:#fff;border:1px solid #e9dce4;overflow:hidden;box-shadow:0 16px 44px rgba(54,20,46,.08)}
.range-visual{height:350px;background:linear-gradient(145deg,#f5eef2,#fff);display:grid;place-items:center;padding:28px}
.range-visual img{height:100%;max-width:100%;object-fit:contain}
.range-body{padding:27px}
.range-body h3{font-size:26px;margin:5px 0 10px}
.range-body p{color:#665864;line-height:1.6}
.range-label{font-size:12px;font-weight:900;color:#bd0e63;letter-spacing:.12em;text-transform:uppercase}

.price-feature{display:grid;grid-template-columns:1fr .9fr;gap:56px;align-items:center}
.price-block{padding:40px;border-radius:28px;background:#4b123f;color:#fff;box-shadow:0 25px 60px rgba(75,18,63,.2)}
.price-block .from{font-size:14px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;color:#ffbdd9}
.price-block strong{font-size:clamp(58px,7vw,84px);letter-spacing:-.06em;line-height:1;display:block;margin:10px 0}
.price-block small{font-size:15px;line-height:1.6;color:rgba(255,255,255,.72)}

.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e5d6df;border-radius:22px;overflow:hidden;background:#fff}
.trust-item{padding:25px;text-align:center}
.trust-item:not(:last-child){border-right:1px solid #e5d6df}
.trust-item strong{display:block;font-size:18px;color:#4b123f}
.trust-item span{font-size:13px;color:#70616c}

.review-card{max-width:860px;margin:0 auto;text-align:center;padding:46px;border-radius:28px;background:#fff;color:#2c2029;box-shadow:0 20px 60px rgba(0,0,0,.16)}
.stars{color:#f3b739;letter-spacing:.15em;font-size:24px}
.review-card blockquote{font-size:clamp(23px,3vw,34px);line-height:1.42;margin:20px 0}
.review-card cite{font-style:normal;font-weight:800;color:#6a5664}

.campaign-form-section{background:linear-gradient(135deg,#f9edf3,#fff 56%,#f4e7ee)}
.campaign-form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:52px;align-items:start}
.campaign-form-copy{position:sticky;top:120px}
.campaign-form-copy h2{font-size:clamp(42px,5vw,66px);line-height:1;margin:10px 0 20px}
.campaign-form-copy p{font-size:18px;line-height:1.7;color:#665864}
.campaign-form-card{background:#fff;border-radius:28px;padding:38px;box-shadow:0 24px 70px rgba(65,20,54,.13);border:1px solid #ecdfe6}
.campaign-form-card .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.campaign-form-card .field-full{grid-column:1/-1}
.campaign-form-card label{display:block;font-size:14px;font-weight:800;color:#3b2a36}
.campaign-form-card input,.campaign-form-card select,.campaign-form-card textarea{width:100%;margin-top:8px;border:1px solid #d9cad3;border-radius:12px;padding:14px 15px;font:inherit;background:#fff;color:#2d2029}
.campaign-form-card input:focus,.campaign-form-card select:focus,.campaign-form-card textarea:focus{outline:3px solid rgba(237,22,120,.16);border-color:#d00f6c}
.upload-zone{border:1.5px dashed #cdb8c5;border-radius:16px;padding:20px;background:#fcf8fa}
.upload-help{display:block;font-weight:500;color:#776874;margin-top:6px;font-size:13px}
.campaign-consent{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important;line-height:1.5}
.campaign-consent input{width:auto!important;margin-top:3px!important}
.campaign-form-status{margin:20px 0 0;padding:14px 16px;border-radius:12px;background:#f7f0f4;color:#4b123f}
.campaign-form-status.is-success{background:#eaf7ef;color:#14572e}
.campaign-form-status.is-error{background:#fff0f1;color:#941c2a}
.campaign-delivery-warning{margin:18px 0;padding:14px 16px;border-radius:12px;background:#fff0f1;color:#8a1c2d}

.choice-chips{display:flex;gap:10px;flex-wrap:wrap}
.choice-chip{padding:10px 14px;border-radius:999px;border:1px solid #dbcbd4;background:#fff;font-size:14px}
.colour-row{display:flex;flex-wrap:wrap;gap:11px;margin-top:28px}
.colour-dot{width:39px;height:39px;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 1px #d5c6ce}
.finance-note{padding:26px;border-left:4px solid #ed1678;background:#fff;border-radius:0 18px 18px 0}
.finance-note p{margin:6px 0 0;color:#665864;line-height:1.6}

.mobile-campaign-cta{display:none;position:fixed;z-index:80;left:12px;right:12px;bottom:12px;text-align:center;padding:15px 18px;border-radius:14px;background:#ed1678;color:#fff;font-weight:900;box-shadow:0 14px 40px rgba(45,10,36,.32)}

@media(max-width:980px){.seasonal-offer-badge{width:132px;right:20px;top:22px}
.seasonal-offer-value{font-size:25px}
.benefit-grid,.process-grid{grid-template-columns:1fr 1fr}
.range-grid{grid-template-columns:1fr 1fr}
.season-grid,.campaign-intro,.price-feature,.campaign-form-wrap,.campaign-call-box{grid-template-columns:1fr}
.honest-offer-grid{grid-template-columns:1fr;gap:12px}
.campaign-call-actions{justify-content:flex-start}
.campaign-form-copy{position:static}
.photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:360px 250px}
.photo-card:first-child{grid-row:auto;grid-column:1/-1}
.trust-strip{grid-template-columns:1fr 1fr}
.trust-item:nth-child(2){border-right:0}
.trust-item:nth-child(-n+2){border-bottom:1px solid #e5d6df}
}

@media(max-width:680px){.seasonal-offer-badge{width:108px;right:14px;top:14px;padding:12px}
.seasonal-offer-value{font-size:21px}
.seasonal-offer-label{font-size:9px;margin-top:5px}
.campaign-phone-inner{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:12px 0}
.campaign-phone-intro{grid-column:1/-1;text-align:center;padding-bottom:8px}
.campaign-phone-link{padding:8px 10px;justify-content:center}
.campaign-phone-link strong{font-size:16px}
.campaign-phone-link:nth-of-type(2){border-right:1px solid rgba(255,255,255,.2)}
.campaign-hero{min-height:690px}
.campaign-hero:after{background:linear-gradient(0deg,rgba(38,7,31,.97),rgba(38,7,31,.58))}
.campaign-hero .shell{padding-top:132px;padding-bottom:84px}
.campaign-hero-media{object-position:center}
.campaign-section{padding:68px 0}
.season-grid{gap:28px}
.benefit-grid,.range-grid,.process-grid,.photo-grid{grid-template-columns:1fr}
.photo-grid{grid-template-rows:repeat(3,300px)}
.photo-card:first-child{grid-column:auto}
.process-step:not(:last-child):after{display:none}
.campaign-call-panel{padding-bottom:62px}
.campaign-call-box{padding:28px 22px}
.campaign-call-actions,.campaign-call-button{width:100%}
.campaign-form-card{padding:25px 20px}
.campaign-form-card .form-grid{grid-template-columns:1fr}
.campaign-form-card .field-full{grid-column:auto}
.trust-strip{grid-template-columns:1fr}
.trust-item{border-right:0!important;border-bottom:1px solid #e5d6df}
.trust-item:last-child{border-bottom:0}
.mobile-conversion-bar{display:flex}
.mobile-campaign-cta{display:grid}
.campaign-page{padding-bottom:82px}
.campaign-actions .button{width:100%}
}

/* Campaign offer and trust overlays */
.seasonal-offer-badge{width:174px}
.seasonal-offer-label{max-width:132px;font-size:10px;line-height:1.2;letter-spacing:.055em}
.seasonal-offer-exclusion{display:block;max-width:125px;margin-top:7px;padding-top:6px;border-top:1px solid rgba(255,255,255,.5);font-size:8px;line-height:1.15;font-weight:800;letter-spacing:.04em}
.hero-trust-stack{position:absolute;z-index:3;right:clamp(22px,5vw,74px);top:40px;display:flex;flex-direction:column;align-items:stretch;gap:9px;width:174px}
.has-seasonal-offer .hero-trust-stack{top:260px}
.hero-google-badge,.hero-assure-badge{display:flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:9px 11px;border:1px solid rgba(255,255,255,.82);border-radius:13px;background:rgba(255,255,255,.96);color:#2e2130;box-shadow:0 12px 30px rgba(36,7,30,.28);text-decoration:none;backdrop-filter:blur(7px)}
.google-g{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;font-size:20px;font-weight:950;color:#4285f4;background:#fff;box-shadow:0 0 0 1px #dedede}
.hero-google-badge strong{display:block;color:#4b123f;font-size:13px;line-height:1.1}
.hero-google-badge small{display:block;margin-top:3px;color:#70616c;font-size:9px;text-transform:uppercase;letter-spacing:.04em}
.hero-assure-badge{flex-direction:column;gap:2px;padding:8px 11px}
.hero-assure-badge img{display:block;width:105px;height:31px;object-fit:contain}
.hero-assure-badge span{font-size:8px;color:#665864;text-transform:uppercase;font-weight:850;letter-spacing:.08em}
@media(max-width:980px){
  .seasonal-offer-badge{width:150px}
  .hero-trust-stack{right:20px;top:36px;width:150px}
  .has-seasonal-offer .hero-trust-stack{top:224px}
  .hero-google-badge,.hero-assure-badge{min-height:48px;padding:7px 8px}
  .hero-assure-badge img{width:92px;height:27px}
}
@media(max-width:680px){
  .seasonal-offer-badge{width:124px;padding:11px}
  .seasonal-offer-value{font-size:22px}
  .seasonal-offer-label{font-size:8px;margin-top:5px}
  .seasonal-offer-exclusion{font-size:7px;margin-top:5px;padding-top:4px}
  .hero-trust-stack{right:14px;top:14px;bottom:auto;width:124px;gap:6px}
  .has-seasonal-offer .hero-trust-stack{top:150px}
  .campaign-hero.has-seasonal-offer .shell{padding-top:290px}
  .hero-google-badge,.hero-assure-badge{min-height:42px;padding:6px}
  .google-g{width:23px;height:23px;font-size:16px}
  .hero-google-badge strong{font-size:10px}
  .hero-google-badge small{font-size:7px}
  .hero-assure-badge img{width:78px;height:22px}
  .hero-assure-badge span{font-size:6px}
}

