/* Bristol Festival Deals 2026 — additive seasonal campaign layer.
   Scoped to campaign components; checkout, pricing, booking behaviour unchanged. */
:root { --psb-fest-forest:#103e33;--psb-fest-ink:#132c27;--psb-fest-gold:#f8c96f;--psb-fest-orange:#ff6a1d;--psb-fest-cream:#fff9ee; }
.psb-fest-bar{background:linear-gradient(110deg,#103e33 0%,#155b46 54%,#134737 100%);color:#fff;position:relative;isolation:isolate;overflow:hidden}
.psb-fest-bar:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 8% 25%,rgba(248,201,111,.24) 0 2px,transparent 3px),radial-gradient(circle at 80% 60%,rgba(248,201,111,.3) 0 2px,transparent 3px),linear-gradient(130deg,transparent 20%,rgba(255,255,255,.04) 50%,transparent 70%);background-size:155px 70px,190px 60px,100% 100%;pointer-events:none}
.psb-fest-bar-inner{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;min-height:48px;padding:8px 16px;position:relative;font-size:13px;line-height:1.4;font-weight:700;text-align:center}
.psb-fest-bar-inner b{color:var(--psb-fest-gold);font-size:15px;font-weight:900}
.psb-fest-bar-inner a{background:var(--psb-fest-gold);color:#11392f!important;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 13px;border-radius:999px;text-decoration:none;font-weight:900;white-space:nowrap;transition:transform .2s ease}
.psb-fest-bar-inner a:hover{transform:translateY(-2px)}
.psb-fest-star{color:var(--psb-fest-gold);font-size:16px}
body.home .psbr-hero{background:linear-gradient(116deg,#fffaf2 0%,#fff4df 46%,#eaf5eb 100%)!important;position:relative;overflow:hidden;isolation:isolate}
body.home .psbr-hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.65;background-image:radial-gradient(circle,#e5ab4b 1.5px,transparent 2.5px),radial-gradient(circle,#fa7c32 2px,transparent 3px),radial-gradient(circle,#1c775c 1.5px,transparent 2.5px);background-size:130px 146px,198px 192px,240px 180px;background-position:17px 20px,64px 76px,120px 25px;mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 58%,#000 100%)}
body.home .psbr-hero-grid{position:relative;z-index:1}
body.home .psbr-hero-content{position:relative;z-index:2}
body.home .psbr-hero-eyebrow{display:inline-flex;gap:8px;align-items:center;background:#fff;border:1px solid #f1dcb8;border-radius:100px;padding:8px 13px!important;color:#7e4c0f!important;box-shadow:0 5px 20px rgba(134,89,16,.065);letter-spacing:.08em}
body.home #psbr-hero-title{letter-spacing:-.055em;line-height:1.06!important;font-weight:900!important}
body.home #psbr-hero-title .psb-fest-hero-gradient{background:linear-gradient(95deg,#ea5412,#bc5c08 55%,#1a654a);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline}
body.home .psb-fest-subtitle{display:block;font-size:clamp(17px,2vw,23px);letter-spacing:-.01em;font-weight:750;color:#204b3e;margin:16px 0 8px;line-height:1.35}
body.home .psb-fest-hero-tag{display:inline-flex;align-items:center;gap:11px;flex-wrap:wrap;color:#163e31;font-weight:850;font-size:13px;margin:0 0 16px}
body.home .psb-fest-hero-tag span{display:inline-block;border-radius:8px;padding:6px 11px;border:1px solid #e2c995;background:#fff7e5;color:#945b14}
body.home .psbr-hero-lead{max-width:610px}
body.home .psbr-hero-actions .psb-fest-main-btn{background:linear-gradient(135deg,#f86d1c,#e94c08)!important;color:#fff!important;box-shadow:0 10px 24px rgba(220,80,15,.25);border:0}
body.home .psbr-hero-actions .psb-fest-main-btn:hover{box-shadow:0 15px 28px rgba(220,80,15,.33)}
body.home .psbr-hero-actions .psb-fest-repair-btn{background:#155943!important;color:#fff!important;box-shadow:0 10px 24px rgba(15,70,46,.15);border:0}
body.home .psbr-hero-actions .psb-fest-secondary-btn{background:#fff!important;border:1px solid #c9d9ce!important;color:#1b4b3d!important}
body.home .psbr-hero-art{isolation:isolate}
body.home .psbr-hero-sun{background:radial-gradient(circle,#f7d27b 0%,#fadba0 40%,rgba(248,199,94,.12) 71%,transparent 73%)!important;opacity:.75}
body.home .psbr-circle-stamp.psb-fest-circle{background:linear-gradient(150deg,#103e33,#246951)!important;color:#fff!important;border:5px solid var(--psb-fest-gold)!important;outline:5px solid #fff!important;box-shadow:0 13px 35px rgba(18,66,50,.2)!important;font-size:clamp(19px,2vw,27px)!important;line-height:1.12!important;letter-spacing:-.04em;transform:rotate(10deg)}
body.home .psb-fest-circle small{display:block;font-size:11px;line-height:1.5;color:#ffdf9a;letter-spacing:.06em;transform:none}
body.home .psbr-hero-signature{background:#fff7e3!important;color:#194b3b!important;border:1px solid #eccb8d!important}
.psb-fest-deals{background:#fffaf1;position:relative;padding:64px 0 70px}
.psb-fest-deals .psb-fest-section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;flex-wrap:wrap}
.psb-fest-kicker{display:inline-block;color:#a45b18;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:900;margin-bottom:8px}
.psb-fest-deals h2{font-size:clamp(31px,3.8vw,48px);line-height:1.12;letter-spacing:-.05em;margin:0;color:#113a2d}
.psb-fest-deals .psb-fest-section-head p{margin:0;max-width:480px;color:#466155;font-size:15px;line-height:1.65}
.psb-fest-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.psb-fest-card{min-width:0;background:#fff;border:1px solid #eee1c9;border-radius:24px;box-shadow:0 12px 34px rgba(64,70,43,.065);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:transform .22s ease,box-shadow .22s ease}
.psb-fest-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(32,80,51,.12)}
.psb-fest-card-media{height:195px;background:linear-gradient(130deg,#f0f5f2,#f9eedb);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.psb-fest-card-media img{width:100%;height:100%;max-width:100%;object-fit:contain;display:block;mix-blend-mode:multiply;padding:12px}
.psb-fest-card-media:after{content:"✦";position:absolute;right:20px;top:13px;color:#d9a33c;font-size:27px}
.psb-fest-card:nth-child(2) .psb-fest-card-media{background:linear-gradient(120deg,#e8f3ed,#dff2e4)}
.psb-fest-card:nth-child(3) .psb-fest-card-media{background:linear-gradient(135deg,#fdf0d0,#e5f1e6)}
.psb-fest-mapmark{font-size:77px;line-height:1;color:#1d6348;font-weight:900;text-shadow:3px 4px 0 #f7d58c}
.psb-fest-card-copy{padding:24px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.psb-fest-card-label{background:#ffe4ac;color:#7d4509;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;border-radius:7px;padding:6px 10px;margin-bottom:12px}
.psb-fest-card:nth-child(2) .psb-fest-card-label{background:#ddf0e2;color:#155a43}
.psb-fest-card h3{font-size:clamp(21px,2vw,26px);line-height:1.19;font-weight:900;letter-spacing:-.035em;color:#173f32;margin:0 0 10px}
.psb-fest-card p{font-size:14px;line-height:1.65;margin:0 0 18px;color:#4b6157}
.psb-fest-card a.psb-fest-card-link{margin-top:auto;display:inline-flex;gap:10px;align-items:center;text-decoration:none;border-bottom:2px solid #e7b45e;padding-bottom:5px;color:#154d3c;font-weight:900}
.psb-fest-card a.psb-fest-card-link:hover{color:#df5812}
.psb-fest-footnote{font-size:12px!important;line-height:1.6!important;color:#586b60;margin:22px 0 0!important}
.psb-fest-terms{background:linear-gradient(125deg,#0e3b30,#175844);color:white;padding:35px 0}
.psb-fest-terms-inner{display:flex;gap:30px;justify-content:space-between;align-items:center}
.psb-fest-terms h2{font-size:clamp(22px,2.3vw,30px);color:#fff;margin:0 0 8px;letter-spacing:-.03em}
.psb-fest-terms p{font-size:13px;line-height:1.7;color:#e5f2e8;max-width:920px;margin:0}
.psb-fest-terms a{border:1px solid #fff5d8;border-radius:999px;padding:12px 19px;white-space:nowrap;text-decoration:none;color:#173b30;background:#f8d589;font-size:13px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
.psb-fest-terms a:hover{background:#fff5d9}
@media(max-width:1050px){
.psb-fest-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.psb-fest-card:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:40% 60%}
.psb-fest-card:nth-child(3) .psb-fest-card-media{height:100%}
.psb-fest-terms-inner{flex-wrap:wrap}
}
@media(max-width:720px){
.psb-fest-bar-inner{font-size:11px;gap:6px;min-height:46px;padding:8px 10px}
.psb-fest-bar-inner b{font-size:12px}
.psb-fest-bar-inner a{font-size:11px;padding:5px 9px}
.psb-fest-star{display:none}
body.home #psbr-hero-title{font-size:clamp(40px,10vw,58px)!important}
body.home .psb-fest-subtitle{font-size:17px;margin:12px 0 7px}
body.home .psbr-hero-actions .psbr-cta{max-width:100%;width:100%}
body.home .psb-fest-hero-tag{font-size:11px;gap:6px}
body.home .psbr-circle-stamp.psb-fest-circle{font-size:17px!important}
.psb-fest-deals{padding:44px 0 45px}
.psb-fest-deals .psb-fest-section-head{margin-bottom:19px}
.psb-fest-cards{grid-template-columns:minmax(0,1fr);gap:15px}
.psb-fest-card:nth-child(3){display:flex;grid-column:auto}
.psb-fest-card:nth-child(3) .psb-fest-card-media{height:160px}
.psb-fest-card-media{height:180px}
.psb-fest-card-copy{padding:20px}
.psb-fest-terms{padding:30px 0}
.psb-fest-terms-inner{display:block}
.psb-fest-terms a{margin-top:20px}
}
@media(prefers-reduced-motion:reduce){.psb-fest-card,.psb-fest-bar-inner a{transition:none!important}.psb-fest-card:hover,.psb-fest-bar-inner a:hover{transform:none!important}}
