/* Legacy page CSS, restored. Source: pages:523:residential-schools-. Built by artifacts/migration/build-legacy-css.py; do not edit. */
.bh-res-school-page{
      --bh-blue:#00B6D9;
      --bh-navy:#21272F;
      --bh-yellow:#E4FF1A;
      --bh-white:#FFFFFF;
      --bh-ink:#183042;
      --bh-muted:#647789;
      --bh-soft:#F7F9FC;
      --bh-soft-2:#EEF2F8;
      --bh-line:rgba(33,39,47,0.12);
      --bh-shadow:0 18px 46px rgba(16,32,46,0.12);
      --bh-shadow-soft:0 12px 30px rgba(16,32,46,0.08);

      --bh-purple:#8D4489;
      --bh-purple-dark:#6F336C;
      --bh-lemon:#CFD500;

      --bh-hot:#E86A6A;
      --bh-medium:#F1C24B;
      --bh-low:#DCECF4;

      --bh-radius-xl:28px;
      --bh-radius-lg:22px;
      --bh-radius-md:16px;
      --bh-shell:1200px;
      position:relative;
      background:linear-gradient(180deg,#f8fbfd 0%, #ffffff 18%, #f8fbfd 100%);
      color:var(--bh-ink);
      overflow:hidden;
      font-family:inherit;
    }

    .bh-res-school-page *{box-sizing:border-box;}

    .bh-rs-shell{
      width:min(var(--bh-shell), calc(100% - 32px));
      margin:0 auto;
    }

    .bh-rs-section{
      padding:clamp(52px,7vw,92px) 0;
      position:relative;
      z-index:2;
    }

    .bh-rs-kicker{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:10px 16px;
      border-radius:999px;
      background:rgba(255,255,255,0.14);
      border:1px solid rgba(255,255,255,0.18);
      color:#ffffff;
      font-size:13px;
      line-height:1;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
      backdrop-filter:blur(6px);
    }

    .bh-rs-kicker-dark{
      background:rgba(141,68,137,0.10);
      color:var(--bh-purple-dark);
      border:1px solid rgba(141,68,137,0.22);
    }

    .bh-rs-title{
      margin:0 0 16px;
      font-size:clamp(34px,5.5vw,68px);
      line-height:.98;
      letter-spacing:-.03em;
      font-weight:900;
      color:#ffffff;
      max-width:11ch;
    }

    .bh-rs-intro-title{
      margin:0 0 14px;
      font-size:clamp(28px,4vw,48px);
      line-height:1.04;
      letter-spacing:-.025em;
      font-weight:900;
      color:var(--bh-navy);
    }

    .bh-rs-lead{
      margin:0 0 26px;
      max-width:780px;
      font-size:clamp(17px,2vw,21px);
      line-height:1.66;
      color:rgba(255,255,255,.92);
    }

    .bh-rs-copy{
      margin:0;
      font-size:17px;
      line-height:1.72;
      color:var(--bh-muted);
    }

    .bh-rs-copy strong{color:var(--bh-navy);}

    .bh-rs-hero{
      position:relative;
      min-height:800px;
      padding:34px 0 92px;
      display:flex;
      align-items:flex-end;
      overflow:hidden;
      background:
        linear-gradient(180deg, rgba(19,22,33,0.16) 0%, rgba(19,22,33,0.44) 35%, rgba(19,22,33,0.86) 100%),
        linear-gradient(125deg, rgba(141,68,137,0.20) 0%, rgba(207,213,0,0.10) 100%);
    }

    .bh-rs-hero-bg,
    .bh-rs-hero-overlay{
      position:absolute;
      inset:0;
      z-index:0;
    }

    .bh-rs-hero-bg img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform:scale(1.03);
    }

    .bh-rs-hero-overlay{
      background:
        radial-gradient(circle at top right, rgba(207,213,0,0.18) 0%, rgba(207,213,0,0) 34%),
        radial-gradient(circle at left center, rgba(141,68,137,0.26) 0%, rgba(141,68,137,0) 36%);
      pointer-events:none;
    }

    .bh-rs-topnav{
      position:absolute;
      left:0;
      right:0;
      top:0;
      z-index:5;
      padding:18px 0;
    }

    .bh-rs-breadcrumbs{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      align-items:center;
      font-size:13px;
      line-height:1.4;
      color:rgba(255,255,255,.84);
    }

    .bh-rs-breadcrumbs a{
      color:#ffffff;
      text-decoration:none;
      font-weight:700;
    }

    .bh-rs-breadcrumbs span{opacity:.9;}

    .bh-rs-hero-grid{
      position:relative;
      z-index:2;
      display:grid;
      grid-template-columns:minmax(0,1.04fr) minmax(320px,0.96fr);
      gap:30px;
      align-items:end;
    }

    .bh-rs-hero-panel,
    .bh-rs-quick-card{
      padding:clamp(26px,3.2vw,40px);
      border-radius:var(--bh-radius-xl);
      background:rgba(255,255,255,0.10);
      border:1px solid rgba(255,255,255,0.18);
      box-shadow:0 20px 46px rgba(0,0,0,0.18);
      backdrop-filter:blur(10px);
    }

    .bh-rs-hero-actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
      margin:28px 0 30px;
    }

    .bh-rs-btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:54px;
      padding:14px 22px;
      border-radius:16px;
      font-size:14px;
      line-height:1.1;
      font-weight:800;
      letter-spacing:.04em;
      text-transform:uppercase;
      text-decoration:none !important;
      transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
      cursor:pointer;
    }

    .bh-rs-btn:hover{transform:translateY(-2px);}

    .bh-rs-btn-primary{
      background:var(--bh-lemon);
      color:var(--bh-purple-dark) !important;
      box-shadow:0 14px 34px rgba(207,213,0,0.22);
    }

    .bh-rs-btn-secondary{
      background:rgba(255,255,255,0.10);
      color:#ffffff !important;
      border:1px solid rgba(255,255,255,0.22);
    }

    .bh-rs-btn-outline{
      background:transparent;
      color:var(--bh-purple-dark) !important;
      border:1px solid rgba(141,68,137,0.24);
    }

    .bh-rs-hero-points{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:12px;
      margin:0;
      padding:0;
      list-style:none;
    }

    .bh-rs-hero-points li{
      display:flex;
      gap:10px;
      align-items:flex-start;
      padding:12px 14px;
      border-radius:16px;
      background:rgba(255,255,255,0.10);
      border:1px solid rgba(255,255,255,0.14);
      color:#ffffff;
      font-size:15px;
      line-height:1.45;
    }

    .bh-rs-hero-points li span{
      flex:0 0 10px;
      width:10px;
      height:10px;
      margin-top:7px;
      border-radius:50%;
      background:var(--bh-lemon);
      box-shadow:0 0 0 6px rgba(207,213,0,0.12);
    }

    .bh-rs-quick-label{
      display:inline-flex;
      width:max-content;
      padding:9px 12px;
      border-radius:999px;
      background:rgba(255,255,255,0.14);
      color:#ffffff;
      font-size:12px;
      line-height:1;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
      margin-bottom:14px;
    }

    .bh-rs-quick-title{
      margin:0 0 12px;
      font-size:clamp(26px,3vw,34px);
      line-height:1.05;
      font-weight:900;
      color:#ffffff;
    }

    .bh-rs-quick-copy{
      margin:0 0 18px;
      font-size:15px;
      line-height:1.72;
      color:rgba(255,255,255,.86);
    }

    .bh-rs-quick-list{
      display:grid;
      gap:12px;
      margin:0;
      padding:0;
      list-style:none;
    }

    .bh-rs-quick-list li{
      display:flex;
      gap:12px;
      align-items:flex-start;
      color:#ffffff;
      font-size:15px;
      line-height:1.55;
    }

    .bh-rs-quick-list li span{
      flex:0 0 11px;
      width:11px;
      height:11px;
      margin-top:6px;
      border-radius:50%;
      background:var(--bh-lemon);
      box-shadow:0 0 0 6px rgba(207,213,0,0.10);
    }

    .bh-rs-journey-wrap{
      margin-top:-34px;
      position:relative;
      z-index:4;
    }

    .bh-rs-journey{
      display:grid;
      grid-template-columns:repeat(8,minmax(0,1fr));
      gap:12px;
      padding:16px;
      border-radius:24px;
      background:rgba(255,255,255,0.96);
      box-shadow:var(--bh-shadow-soft);
      border:1px solid var(--bh-line);
      backdrop-filter:blur(10px);
    }

    .bh-rs-journey a{
      display:flex;
      align-items:center;
      gap:10px;
      min-height:58px;
      padding:12px 14px;
      border-radius:18px;
      background:var(--bh-soft);
      color:var(--bh-navy);
      text-decoration:none;
      transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
    }

    .bh-rs-journey a:hover{
      transform:translateY(-2px);
      background:#f5eef5;
      box-shadow:0 10px 24px rgba(16,32,46,0.08);
    }

    .bh-rs-journey-step{
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:30px;
      height:30px;
      border-radius:999px;
      background:#ffffff;
      border:1px solid rgba(33,39,47,0.10);
      color:var(--bh-purple);
      font-size:12px;
      line-height:1;
      font-weight:900;
      letter-spacing:.04em;
    }

    .bh-rs-journey-label{
      display:block;
      font-size:13px;
      line-height:1.2;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
    }

    .bh-rs-header{
      max-width:880px;
      margin:0 auto 34px;
      text-align:center;
    }

    .bh-rs-header .bh-rs-copy{
      max-width:820px;
      margin:0 auto;
    }

    .bh-rs-trust-strip{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:18px;
      margin-top:28px;
    }

    .bh-rs-trust-card{
      padding:22px;
      border-radius:22px;
      background:#ffffff;
      border:1px solid var(--bh-line);
      box-shadow:var(--bh-shadow-soft);
      text-align:center;
    }

    .bh-rs-trust-card strong{
      display:block;
      margin-bottom:8px;
      font-size:16px;
      line-height:1.3;
      font-weight:900;
      color:var(--bh-navy);
    }

    .bh-rs-trust-card span{
      display:block;
      font-size:14px;
      line-height:1.6;
      color:var(--bh-muted);
      font-weight:700;
    }

    .bh-rs-price-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:20px;
    }

    .bh-rs-price-card{
      position:relative;
      display:flex;
      flex-direction:column;
      gap:16px;
      padding:28px;
      border-radius:28px;
      background:#ffffff;
      border:1px solid var(--bh-line);
      box-shadow:var(--bh-shadow);
      overflow:hidden;
      min-height:100%;
    }

    .bh-rs-price-card:before{
      content:"";
      position:absolute;
      left:0;
      right:0;
      top:0;
      height:6px;
      background:linear-gradient(90deg,#8D4489 0%, #c07abb 100%);
    }

    .bh-rs-price-card.featured{
      border-color:rgba(141,68,137,0.30);
      box-shadow:0 22px 48px rgba(141,68,137,0.14);
      background:linear-gradient(180deg,#fbf7fb 0%, #ffffff 100%);
    }

    .bh-rs-price-badge{
      display:inline-flex;
      width:max-content;
      padding:9px 12px;
      border-radius:999px;
      background:rgba(141,68,137,0.10);
      color:var(--bh-purple-dark);
      font-size:12px;
      line-height:1;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .bh-rs-price-card h3{
      margin:0;
      font-size:28px;
      line-height:1.02;
      font-weight:900;
      letter-spacing:-0.02em;
      color:var(--bh-navy);
    }

    .bh-rs-price-meta{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }

    .bh-rs-chip{
      display:inline-flex;
      align-items:center;
      min-height:36px;
      padding:8px 12px;
      border-radius:999px;
      background:rgba(141,68,137,0.08);
      color:var(--bh-purple-dark);
      font-size:12px;
      line-height:1;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .bh-rs-price-row{
      display:flex;
      align-items:flex-end;
      gap:10px;
      padding:4px 0 0;
    }

    .bh-rs-price{
      font-size:44px;
      line-height:1;
      font-weight:900;
      letter-spacing:-0.03em;
      color:var(--bh-purple-dark);
    }

    .bh-rs-price-note{
      font-size:15px;
      line-height:1.4;
      color:var(--bh-muted);
      font-weight:700;
    }

    .bh-rs-offpeak{
      display:inline-flex;
      width:max-content;
      padding:10px 12px;
      border-radius:14px;
      background:rgba(207,213,0,0.18);
      color:var(--bh-purple-dark);
      font-size:13px;
      line-height:1.3;
      font-weight:800;
    }

    .bh-rs-price-card p{
      margin:0;
      font-size:15px;
      line-height:1.72;
      color:var(--bh-muted);
    }

    .bh-rs-price-card ul{
      display:grid;
      gap:10px;
      margin:0;
      padding:0;
      list-style:none;
    }

    .bh-rs-price-card li{
      position:relative;
      padding-left:18px;
      font-size:14px;
      line-height:1.55;
      color:var(--bh-ink);
    }

    .bh-rs-price-card li:before{
      content:"";
      position:absolute;
      left:0;
      top:8px;
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--bh-lemon);
      box-shadow:0 0 0 5px rgba(207,213,0,0.12);
    }

    .bh-rs-accommodation-grid,
    .bh-rs-supervision-grid,
    .bh-rs-proof-grid,
    .bh-rs-convert,
    .bh-rs-gallery-grid,
    .bh-rs-gaisce-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:18px;
    }

    .bh-rs-info-card,
    .bh-rs-proof-card,
    .bh-rs-convert-card,
    .bh-rs-gallery-card,
    .bh-rs-gaisce-card{
      display:flex;
      flex-direction:column;
      gap:14px;
      padding:24px;
      border-radius:24px;
      background:#ffffff;
      border:1px solid var(--bh-line);
      box-shadow:var(--bh-shadow-soft);
      min-height:100%;
    }

    .bh-rs-info-card h3,
    .bh-rs-proof-mini h3,
    .bh-rs-convert-card h3,
    .bh-rs-gaisce-card h3{
      margin:0;
      font-size:26px;
      line-height:1.05;
      font-weight:900;
      color:var(--bh-navy);
      letter-spacing:-.02em;
    }

    .bh-rs-info-card p,
    .bh-rs-proof-card p,
    .bh-rs-proof-mini p,
    .bh-rs-convert-card p,
    .bh-rs-gaisce-card p{
      margin:0;
      font-size:15px;
      line-height:1.76;
      color:var(--bh-muted);
    }

    .bh-rs-flow{
      display:grid;
      gap:10px;
      margin-top:4px;
    }

    .bh-rs-flow-step{
      display:grid;
      grid-template-columns:auto 1fr;
      gap:12px;
      align-items:start;
      padding:12px 14px;
      border-radius:16px;
      background:var(--bh-soft);
    }

    .bh-rs-flow-label{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:98px;
      padding:8px 10px;
      border-radius:999px;
      background:#ffffff;
      border:1px solid rgba(33,39,47,0.10);
      color:var(--bh-navy);
      font-size:12px;
      line-height:1;
      font-weight:900;
      letter-spacing:.06em;
      text-transform:uppercase;
    }

    .bh-rs-flow-text{
      font-size:14px;
      line-height:1.55;
      color:var(--bh-ink);
      font-weight:700;
    }

    .bh-rs-gallery-image{
      position:relative;
      overflow:hidden;
      border-radius:20px;
      min-height:280px;
      background:#dfe7ec;
    }

    .bh-rs-gallery-image img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    .bh-rs-gallery-caption{
      margin:0;
      font-size:14px;
      line-height:1.65;
      color:var(--bh-muted);
    }

    .bh-rs-proof-mark{
      font-size:42px;
      line-height:1;
      color:var(--bh-purple);
      font-weight:900;
    }

    .bh-rs-proof-card strong{
      display:block;
      font-size:15px;
      line-height:1.45;
      color:var(--bh-navy);
    }

    .bh-rs-proof-card span{
      display:block;
      font-size:13px;
      line-height:1.45;
      color:var(--bh-muted);
    }

    .bh-rs-proof-mini{
      margin-top:18px;
      padding:24px;
      border-radius:24px;
      background:linear-gradient(180deg,#f4eef6 0%, #ffffff 100%);
      border:1px solid rgba(141,68,137,0.10);
      box-shadow:var(--bh-shadow-soft);
    }

    .bh-rs-gaisce-card.featured{
      border-color:rgba(141,68,137,0.24);
      background:linear-gradient(180deg,#fbf7fb 0%, #ffffff 100%);
      box-shadow:0 18px 40px rgba(141,68,137,0.10);
    }

    .bh-rs-booking-wrap{
      background:linear-gradient(180deg,#f4eef6 0%, #ffffff 100%);
      border:1px solid rgba(141,68,137,0.08);
      border-radius:30px;
      padding:clamp(24px,3.5vw,38px);
      box-shadow:var(--bh-shadow-soft);
    }

    .bh-rs-booking-calendar{
      margin-top:28px;
      border-radius:24px;
      overflow:hidden;
      border:1px solid rgba(141,68,137,0.12);
      background:#ffffff;
      box-shadow:0 10px 24px rgba(16,32,46,0.05);
    }

    .bh-rs-booking-head,
    .bh-rs-booking-row{
      display:grid;
      grid-template-columns:220px repeat(8,minmax(0,1fr));
    }

    .bh-rs-booking-head{
      background:#f3ebf4;
    }

    .bh-rs-booking-head > div{
      padding:16px 12px;
      font-size:12px;
      line-height:1.2;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--bh-purple-dark);
      border-right:1px solid rgba(141,68,137,0.10);
      text-align:center;
    }

    .bh-rs-booking-head > div:first-child{text-align:left;}

    .bh-rs-booking-row{
      border-top:1px solid rgba(141,68,137,0.08);
    }

    .bh-rs-booking-label{
      padding:18px 16px;
      background:#ffffff;
      border-right:1px solid rgba(141,68,137,0.08);
    }

    .bh-rs-booking-label strong{
      display:block;
      font-size:16px;
      line-height:1.3;
      color:var(--bh-navy);
    }

    .bh-rs-booking-label span{
      display:block;
      margin-top:6px;
      font-size:13px;
      line-height:1.5;
      color:var(--bh-muted);
    }

    .bh-rs-booking-cell{
      display:flex;
      align-items:center;
      justify-content:center;
      text-align:center;
      padding:16px 10px;
      min-height:92px;
      border-right:1px solid rgba(141,68,137,0.08);
      font-size:12px;
      line-height:1.35;
      font-weight:800;
      color:var(--bh-purple-dark);
    }

    .bh-rs-booking-high{background:rgba(232,106,106,0.10);}
    .bh-rs-booking-medium{background:rgba(241,194,75,0.16);}
    .bh-rs-booking-soft{background:#faf8fb;}

    .bh-rs-booking-legend{
      display:flex;
      flex-wrap:wrap;
      gap:18px;
      margin-top:18px;
    }

    .bh-rs-booking-legend-item{
      display:inline-flex;
      align-items:center;
      gap:10px;
      font-size:13px;
      line-height:1.4;
      color:var(--bh-muted);
      font-weight:700;
    }

    .bh-rs-booking-dot{
      width:12px;
      height:12px;
      border-radius:50%;
      display:inline-block;
    }

    .bh-rs-booking-dot-high{background:rgba(232,106,106,0.80);}
    .bh-rs-booking-dot-medium{background:rgba(241,194,75,0.90);}
    .bh-rs-booking-dot-soft{background:#ebe1ec;}

    .bh-rs-booking-note{
      margin-top:18px;
      padding:18px 20px;
      border-radius:18px;
      background:#faf6fb;
      border:1px solid rgba(141,68,137,0.08);
    }

    .bh-rs-booking-note p{
      margin:0;
      font-size:15px;
      line-height:1.7;
      color:var(--bh-muted);
    }

    .bh-rs-final{
      padding-bottom:92px;
    }

    .bh-rs-final-cta{
      position:relative;
      overflow:hidden;
      padding:clamp(32px,5vw,54px);
      border-radius:34px;
      background:linear-gradient(135deg,#4D2550 0%, #6F336C 56%, #8D4489 100%);
      box-shadow:var(--bh-shadow);
      color:#ffffff;
    }

    .bh-rs-final-grid{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:24px;
      align-items:center;
    }

    .bh-rs-final-cta h2{
      margin:0 0 12px;
      font-size:clamp(30px,4vw,50px);
      line-height:1.02;
      letter-spacing:-.025em;
      font-weight:900;
      color:#ffffff;
      max-width:12ch;
    }

    .bh-rs-final-cta p{
      margin:0;
      max-width:720px;
      font-size:17px;
      line-height:1.72;
      color:rgba(255,255,255,0.9);
    }

    .bh-rs-final-actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
      justify-content:flex-end;
    }

    @media (max-width: 1280px){
      .bh-rs-journey{grid-template-columns:repeat(4,minmax(0,1fr));}
      .bh-rs-price-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    }

    @media (max-width: 1120px){
      .bh-rs-hero-grid,
      .bh-rs-final-grid,
      .bh-rs-accommodation-grid,
      .bh-rs-supervision-grid,
      .bh-rs-proof-grid,
      .bh-rs-convert,
      .bh-rs-gallery-grid,
      .bh-rs-gaisce-grid{
        grid-template-columns:1fr;
      }

      .bh-rs-trust-strip{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }
    }

    @media (max-width: 980px){
      .bh-rs-booking-calendar{overflow-x:auto;}
      .bh-rs-booking-head,
      .bh-rs-booking-row{min-width:940px;}
    }

    @media (max-width: 860px){
      .bh-rs-hero{
        min-height:auto;
        padding:22px 0 80px;
      }

      .bh-rs-title{max-width:none;}
      .bh-rs-journey-wrap{margin-top:-24px;}

      .bh-rs-trust-strip,
      .bh-rs-journey,
      .bh-rs-price-grid{
        grid-template-columns:1fr;
      }

      .bh-rs-final-actions{justify-content:flex-start;}
    }

    @media (max-width: 640px){
      .bh-rs-shell{
        width:min(var(--bh-shell), calc(100% - 20px));
      }

      .bh-rs-section{padding:44px 0 64px;}
      .bh-rs-hero{padding:16px 0 70px;}

      .bh-rs-hero-panel,
      .bh-rs-quick-card,
      .bh-rs-price-card,
      .bh-rs-info-card,
      .bh-rs-proof-card,
      .bh-rs-proof-mini,
      .bh-rs-convert-card,
      .bh-rs-trust-card,
      .bh-rs-gallery-card,
      .bh-rs-gaisce-card{
        padding:20px;
      }

      .bh-rs-hero-points{grid-template-columns:1fr;}
      .bh-rs-hero-actions,
      .bh-rs-final-actions{flex-direction:column;}
      .bh-rs-btn{width:100%;}
      .bh-rs-final-cta{border-radius:28px;}
      .bh-rs-journey a{min-height:52px;padding:12px 13px;}
      .bh-rs-flow-step{grid-template-columns:1fr;gap:10px;}
    }
