/* ── Room card photo gallery ───────────────────────────────────────
       Lifted verbatim from the home page rail so both behave identically.
       If you change one, change the other — these are the only two copies. */
    .room-rail-card__media{position:relative;overflow:hidden;background:#241019}
    .room-rail-card__slides{display:flex;transition:transform .45s cubic-bezier(.25,.1,.25,1);will-change:transform}
    .room-rail-card__slides>.room-rail-card__image{flex:0 0 100%;width:100%}
    .room-rail-card__imgnav{position:absolute;top:50%;transform:translateY(-50%);width:2.1rem;height:2.1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(20,8,12,.5);color:#fff;border:none;cursor:pointer;z-index:3;opacity:0;transition:opacity .2s ease,background .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
    .room-rail-card:hover .room-rail-card__imgnav,.room-rail-card__media:focus-within .room-rail-card__imgnav{opacity:1}
    .room-rail-card__imgnav:hover{background:rgba(20,8,12,.8)}
    .room-rail-card__imgnav--prev{left:.6rem}
    .room-rail-card__imgnav--next{right:.6rem}
    .room-rail-card__dots{position:absolute;bottom:.6rem;left:0;right:0;display:flex;gap:5px;justify-content:center;z-index:3;pointer-events:none}
    .room-rail-card__dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45);transition:background .2s ease}
    .room-rail-card__dot.is-active{background:#fff}
    @media (hover:none){.room-rail-card__imgnav{opacity:.9}}

    /* ══════════════════════════════════════════════════════════════════
       Contractor page — same editorial language as the B&B page.
       Hairlines instead of cards, structural contrast instead of tonal,
       one italic keyword per heading. Breakpoints live at the very END
       of this block: several rules below share their specificity, so a
       breakpoint declared earlier would be silently overridden.
       ══════════════════════════════════════════════════════════════ */

    .page-contractor .ctr-hero-trust{margin:1.4rem 0 0;font-family:var(--sans);font-size:.82rem;
      letter-spacing:.02em;color:rgba(255,255,255,.82);}
    .page-contractor .ctr-hero-trust strong{color:#fff;}
    .page-contractor .ctr-stars{color:var(--gold);letter-spacing:2px;}

    /* ── shared section header ────────────────────────────────────── */
    .page-contractor .ctr-head{text-align:center;max-width:760px;margin:0 auto;}
    .page-contractor .ctr-head__eyebrow{display:block;font-family:var(--sans);font-size:var(--text-xs);
      font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
      margin-bottom:var(--space-5);}
    .page-contractor .ctr-head__title{font-family:var(--serif);font-weight:300;
      font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.08;color:var(--ink);margin:0;}
    .page-contractor .ctr-head__title em{font-style:italic;color:var(--pink-dark);}
    .page-contractor .ctr-head--light .ctr-head__title{color:#fff;}
    .page-contractor .ctr-head--light .ctr-head__title em{color:var(--pink-light);}
    .page-contractor .ctr-head__lead{font-size:var(--text-base);line-height:1.8;color:var(--mid);
      margin:var(--space-6) auto 0;max-width:56ch;}

    /* ── intro / front-loaded answer ──────────────────────────────── */
    .page-contractor .ctr-answer{text-align:center;max-width:760px;margin:0 auto;}
    .page-contractor .ctr-answer__eyebrow{display:block;margin-bottom:var(--space-5);}
    .page-contractor .ctr-answer__title{font-family:var(--serif);font-weight:300;
      font-size:clamp(2.1rem,4.6vw,3.5rem);line-height:1.06;color:var(--ink);margin:0;}
    .page-contractor .ctr-answer__title em{font-style:italic;color:var(--pink-dark);}
    .page-contractor .ctr-answer__rule{display:block;width:1px;height:52px;margin:var(--space-7) auto;
      background:linear-gradient(to bottom,rgba(42,15,26,0),var(--gold),rgba(42,15,26,0));}
    .page-contractor .ctr-answer__lead,
    .page-contractor .ctr-answer__body p{font-family:var(--serif);font-weight:300;
      font-size:clamp(1.15rem,2.1vw,1.5rem);line-height:1.62;color:var(--ink);
      margin:0 0 var(--space-5);}
    .page-contractor .ctr-answer__lead:last-child{margin-bottom:0;}

    /* ── mauve band + numbered ledger ─────────────────────────────── */
    .page-contractor .ctr-band{background:var(--pink-dark);color:var(--cream);}
    /* Lead across the top, ledger two-up beneath at full container width.
       Was a .86/1.14 side-by-side split with a sticky lead, but eight ledger
       items in ONE column ran 1164px against a 313px lead - a 3.7x imbalance
       and a long stretch of empty dark band. Stacking + 2-up brings the
       section from ~1400px to ~900px and gives each item ~500px of width
       instead of ~290px. Sticky is dropped: pointless once stacked. */
    .page-contractor .ctr-band__split{display:grid;
      grid-template-columns:1fr;gap:var(--space-9);align-items:start;}
    .page-contractor .ctr-band__lead{max-width:none;}
    .page-contractor .ctr-band__eyebrow{display:block;font-family:var(--sans);font-size:var(--text-xs);
      font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.78);
      margin-bottom:var(--space-5);}
    .page-contractor .ctr-band__title{font-family:var(--serif);font-weight:300;
      font-size:clamp(2.2rem,4.8vw,3.6rem);line-height:1.03;color:#fff;margin:0 0 var(--space-6);}
    .page-contractor .ctr-band__title em{font-style:italic;color:var(--cream);opacity:.72;}
    /* No max-width: the lead is a full-width intro now, not a narrow column
       beside the ledger. The old 44ch cap was what kept it hugging the left.
       (Tried 80ch on 2026-08-18; owner preferred it edge to edge.) */
    .page-contractor .ctr-band__lead p{font-size:var(--text-base);line-height:1.85;
      color:rgba(255,255,255,.84);margin:0 0 var(--space-5);max-width:none;}
    .page-contractor .ctr-band__cta{display:inline-block;margin-top:var(--space-2);padding:14px 30px;
      border:1px solid rgba(255,255,255,.45);color:#fff;text-decoration:none;font-family:var(--sans);
      font-size:var(--text-xs);font-weight:500;letter-spacing:.18em;text-transform:uppercase;
      transition:background var(--mid-speed),border-color var(--mid-speed),color var(--mid-speed);}
    .page-contractor .ctr-band__cta:hover{background:var(--cream);border-color:var(--cream);color:var(--pink-dark);}

    .page-contractor .ctr-ledger{list-style:none;margin:0;padding:0;
      display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-9);
      border-top:1px solid rgba(255,255,255,.18);counter-reset:none;}
    .page-contractor .ctr-ledger li{display:grid;grid-template-columns:auto 1fr;gap:var(--space-6);
      align-items:start;padding:var(--space-7) 0;border-bottom:1px solid rgba(255,255,255,.18);}
    .page-contractor .ctr-ledger__n{font-family:var(--serif);font-weight:300;
      font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:.9;color:rgba(255,255,255,.42);
      letter-spacing:-.02em;transition:color var(--mid-speed);}
    .page-contractor .ctr-ledger li:hover .ctr-ledger__n{color:var(--gold);}
    .page-contractor .ctr-ledger h3{font-family:var(--serif);font-weight:500;
      font-size:clamp(1.25rem,2vw,1.55rem);color:#fff;margin:0 0 var(--space-3);line-height:1.18;}
    .page-contractor .ctr-ledger p{font-size:var(--text-sm);line-height:1.8;
      color:rgba(255,255,255,.78);margin:0;}

    /* ── matted split — photo mounted, not boxed ──────────────────── */
    .page-contractor .ctr-matte{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);
      gap:var(--space-11);align-items:center;}
    .page-contractor .ctr-matte__img{position:relative;aspect-ratio:4/5;}
    .page-contractor .ctr-matte__img::before{content:'';position:absolute;z-index:0;
      inset:22px -22px -22px 22px;border:1px solid rgba(168,119,138,.55);
      transition:inset .5s var(--ease-out),border-color .5s var(--ease-out);}
    .page-contractor .ctr-matte:hover .ctr-matte__img::before{inset:30px -30px -30px 30px;
      border-color:var(--gold);}
    .page-contractor .ctr-matte__img picture,
    .page-contractor .ctr-matte__img > img{position:relative;z-index:1;display:block;
      width:100%;height:100%;overflow:hidden;
      box-shadow:0 40px 70px -30px rgba(42,15,26,.62),
                 0 16px 30px -14px rgba(42,15,26,.40),
                 0 2px 6px -2px rgba(42,15,26,.22);}
    .page-contractor .ctr-matte__img img,
    .page-contractor .ctr-matte__img .placeholder-img{width:100%;height:100%;object-fit:cover;
      display:block;transition:transform 1.2s var(--ease-out);}
    .page-contractor .ctr-matte:hover .ctr-matte__img img{transform:scale(1.05);}
    .page-contractor .ctr-matte__title{font-family:var(--serif);font-weight:300;
      font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.06;color:var(--ink);
      margin:var(--space-4) 0 var(--space-7);}
    .page-contractor .ctr-matte__title em{font-style:italic;color:var(--pink-dark);}

    .page-contractor .ctr-ticks{list-style:none;margin:0;padding:0;
      border-top:1px solid var(--border);}
    .page-contractor .ctr-ticks li{position:relative;padding:var(--space-6) 0 var(--space-6) var(--space-8);
      border-bottom:1px solid var(--border);}
    .page-contractor .ctr-ticks li::before{content:'\2713';position:absolute;left:0;top:calc(var(--space-6) + .1em);
      font-family:var(--sans);font-size:.95rem;font-weight:600;color:var(--gold);}
    .page-contractor .ctr-ticks h3{font-family:var(--serif);font-weight:500;font-size:1.25rem;
      color:var(--ink);margin:0 0 var(--space-3);line-height:1.2;}
    .page-contractor .ctr-ticks p{font-size:var(--text-sm);line-height:1.78;color:var(--mid);margin:0;}

    /* ── location + dotted-leader distances ───────────────────────── */
    .page-contractor .ctr-loc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);
      gap:var(--space-11);align-items:start;}
    .page-contractor .ctr-loc__title{font-family:var(--serif);font-weight:300;
      font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.06;color:var(--ink);
      margin:var(--space-4) 0 var(--space-7);}
    .page-contractor .ctr-loc__title em{font-style:italic;color:var(--pink-dark);}
    .page-contractor .ctr-loc__copy p,
    .page-contractor .ctr-loc__body p{font-size:var(--text-base);line-height:1.85;color:var(--mid);
      margin:0 0 var(--space-5);max-width:52ch;}

    .page-contractor .ctr-dist{display:block;border-top:1px solid var(--border);}
    .page-contractor .ctr-dist__title{display:block;font-family:var(--sans);font-size:var(--text-xs);
      font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--pink-dark);
      padding:var(--space-5) 0;}
    .page-contractor .ctr-dist__row{display:flex;align-items:baseline;gap:var(--space-4);
      padding:var(--space-5) 0;border-top:1px solid var(--border);}
    .page-contractor .ctr-dist__label{font-family:var(--serif);font-weight:300;
      font-size:clamp(1.1rem,1.7vw,1.35rem);color:var(--ink);}
    .page-contractor .ctr-dist__row::after{content:'';flex:1 1 auto;order:2;height:0;
      border-bottom:1px dotted var(--stone);transform:translateY(-.3em);opacity:.85;}
    .page-contractor .ctr-dist__value{order:3;flex:none;font-family:var(--sans);
      font-size:var(--text-sm);letter-spacing:.06em;color:var(--mid);}

    /* ── long stays — four columns of type, hairline separated ────── */
    .page-contractor .ctr-segs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
      margin-top:var(--space-10);border-top:1px solid var(--border);}
    .page-contractor .ctr-seg{position:relative;padding:var(--space-8) var(--space-7) var(--space-8) 0;}
    .page-contractor .ctr-seg:not(:last-child)::before{content:'';position:absolute;
      top:var(--space-8);right:var(--space-6);bottom:var(--space-8);width:1px;background:var(--border);}
    .page-contractor .ctr-seg h4{font-family:var(--serif);font-weight:300;
      font-size:clamp(1.45rem,2.3vw,1.9rem);line-height:1.1;color:var(--ink);margin:0;}
    .page-contractor .ctr-seg h4::after{content:'';display:block;width:26px;height:1px;
      background:var(--gold);margin:var(--space-5) 0;transition:width .5s var(--ease-out);}
    .page-contractor .ctr-seg:hover h4::after{width:64px;}
    .page-contractor .ctr-seg p{font-size:var(--text-base);line-height:1.75;color:var(--mid);margin:0;}
    .page-contractor .ctr-segs__cta{text-align:center;margin-top:var(--space-9);}

    /* ── press wall — three quotes, no cards ──────────────────────── */
    .page-contractor .ctr-press{display:grid;grid-template-columns:repeat(3,1fr);
      gap:var(--space-10);margin-top:var(--space-10);}
    .page-contractor .ctr-press__item{margin:0;display:flex;flex-direction:column;}
    .page-contractor .ctr-press__item blockquote{margin:0;flex:1 1 auto;}
    .page-contractor .ctr-press__item blockquote p{min-height:6.2em;font-family:var(--serif);
      font-weight:300;font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.45;color:var(--ink);
      margin:0;text-indent:-.42em;}
    .page-contractor .ctr-press__item blockquote p::before{content:'\201C';color:var(--pink-light);}
    .page-contractor .ctr-press__item blockquote p::after{content:'\201D';color:var(--pink-light);}
    .page-contractor .ctr-press__item figcaption{display:flex;align-items:baseline;
      justify-content:space-between;gap:var(--space-4);margin-top:var(--space-6);
      padding-top:var(--space-5);border-top:1px solid var(--border);}
    .page-contractor .ctr-press__item cite{font-style:normal;font-family:var(--sans);
      font-size:var(--text-sm);color:var(--ink);}
    .page-contractor .ctr-press__src{font-family:var(--sans);font-size:var(--text-xs);font-weight:500;
      letter-spacing:.16em;text-transform:uppercase;color:var(--pink-dark);}

    .page-contractor .ctr-strip{display:grid;grid-template-columns:repeat(3,1fr);
      margin-top:var(--space-10);border-top:1px solid var(--border);}
    .page-contractor .ctr-strip div{padding:var(--space-7) var(--space-4);text-align:center;
      border-right:1px solid var(--border);}
    .page-contractor .ctr-strip div:last-child{border-right:none;}
    .page-contractor .ctr-strip b{display:block;font-family:var(--serif);font-weight:300;
      font-size:clamp(2rem,4vw,2.9rem);line-height:1;color:var(--pink-dark);}
    .page-contractor .ctr-strip span{display:block;margin-top:var(--space-3);font-family:var(--sans);
      font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}

    /* ── working-stay band (mauve) ────────────────────────────────── */
    .page-contractor .ctr-inc{background:var(--pink-dark);color:var(--cream);}
    .page-contractor .ctr-inc__accolade{max-width:760px;margin:0 auto;text-align:center;
      padding-bottom:var(--space-11);}
    .page-contractor .ctr-inc__badge{display:block;font-family:var(--sans);font-size:var(--text-xs);
      font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.88);}
    .page-contractor .ctr-inc__rule{display:block;width:1px;height:44px;margin:var(--space-6) auto;
      background:linear-gradient(to bottom,rgba(255,255,255,.06),rgba(255,255,255,.55),rgba(255,255,255,.06));}
    .page-contractor .ctr-inc__quote{margin:0;}
    .page-contractor .ctr-inc__quote p{min-height:2.9em;font-family:var(--serif);font-style:italic;
      font-weight:300;font-size:clamp(1.4rem,2.9vw,2.15rem);line-height:1.42;color:#fff;margin:0;}
    .page-contractor .ctr-inc__cite{display:block;font-family:var(--sans);font-size:var(--text-xs);
      letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.66);}
    .page-contractor .ctr-inc__split{display:grid;
      grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:var(--space-11);align-items:start;}
    .page-contractor .ctr-inc__title{font-family:var(--serif);font-weight:300;
      font-size:clamp(2.2rem,4.8vw,3.8rem);line-height:1.02;color:#fff;margin:0 0 var(--space-6);}
    .page-contractor .ctr-inc__title em{font-style:italic;color:var(--cream);opacity:.72;}
    .page-contractor .ctr-inc__lead p{font-size:var(--text-base);line-height:1.85;
      color:rgba(255,255,255,.84);margin:0 0 var(--space-5);max-width:46ch;}
    .page-contractor .ctr-inc__cta{display:inline-block;margin:var(--space-4) 0 var(--space-7);
      padding:14px 30px;border:1px solid rgba(255,255,255,.45);color:#fff;text-decoration:none;
      font-family:var(--sans);font-size:var(--text-xs);font-weight:500;letter-spacing:.18em;
      text-transform:uppercase;
      transition:background var(--mid-speed),border-color var(--mid-speed),color var(--mid-speed);}
    .page-contractor .ctr-inc__cta:hover{background:var(--cream);border-color:var(--cream);color:var(--pink-dark);}
    .page-contractor .ctr-inc__grid{display:grid;grid-template-columns:1fr 1fr;
      gap:var(--space-9) var(--space-8);list-style:none;margin:var(--space-2) 0 0;padding:0;}
    .page-contractor .ctr-inc__grid li{position:relative;padding-left:var(--space-7);}
    .page-contractor .ctr-inc__grid li::before{content:'\2713';position:absolute;left:0;top:.12em;
      font-family:var(--sans);font-size:.95rem;color:rgba(255,255,255,.85);}
    .page-contractor .ctr-inc__grid h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;
      color:#fff;margin:0 0 var(--space-3);line-height:1.2;}
    .page-contractor .ctr-inc__grid p{font-size:var(--text-sm);line-height:1.78;
      color:rgba(255,255,255,.8);margin:0;}

    /* ══ Breakpoints — last, on purpose (see note at top) ══════════ */
    @media(max-width:960px){
      .page-contractor .ctr-segs{grid-template-columns:1fr 1fr;}
      .page-contractor .ctr-seg:nth-child(2)::before{display:none;}
      .page-contractor .ctr-seg:nth-child(3),
      .page-contractor .ctr-seg:nth-child(4){border-top:1px solid var(--border);}
      .page-contractor .ctr-press{grid-template-columns:1fr;gap:var(--space-8);}
      .page-contractor .ctr-press__item blockquote p{min-height:0;}
    }
    @media(max-width:860px){
      .page-contractor .ctr-band__split,
      .page-contractor .ctr-inc__split,
      .page-contractor .ctr-loc,
      .page-contractor .ctr-matte{grid-template-columns:1fr;gap:var(--space-9);}
      .page-contractor .ctr-ledger{grid-template-columns:1fr;column-gap:0;}
      .page-contractor .ctr-matte__img{aspect-ratio:4/3;}
      .page-contractor .ctr-matte__img::before{inset:14px -14px -14px 14px;}
      .page-contractor .ctr-inc__grid{grid-template-columns:1fr;gap:var(--space-8);}
      .page-contractor .ctr-strip{grid-template-columns:1fr;}
      .page-contractor .ctr-strip div{border-right:none;border-bottom:1px solid var(--border);}
      .page-contractor .ctr-strip div:last-child{border-bottom:none;}
    }
    @media(max-width:768px){
      /* hero: sub smaller and the two actions side by side, as on the B&B page */
      .page-contractor .hero__sub{font-size:.85rem!important;line-height:1.62!important;
        max-width:32ch;margin-left:auto;margin-right:auto;}
      .page-contractor .hero__actions{flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:9px;}
      .page-contractor .hero__actions .btn{flex:1 1 0;min-width:0;width:auto;max-width:200px;
        display:flex;align-items:center;justify-content:center;text-align:center;
        padding:14px 7px;font-size:.6rem;letter-spacing:.06em;line-height:1.3;}
      .page-contractor .ctr-hero-trust{font-size:.72rem;line-height:1.5;}
    }
    @media(max-width:560px){
      .page-contractor .ctr-segs{grid-template-columns:1fr;}
      .page-contractor .ctr-seg{padding-right:0;}
      .page-contractor .ctr-seg::before{display:none!important;}
      .page-contractor .ctr-seg:not(:first-child){border-top:1px solid var(--border);}
      .page-contractor .ctr-ledger li{grid-template-columns:1fr;gap:var(--space-3);}
      .page-contractor .ctr-dist__row{flex-wrap:wrap;}
      .page-contractor .ctr-dist__row::after{display:none;}
      .page-contractor .ctr-dist__value{order:2;margin-left:auto;}
    }
