@font-face{font-family:MJBookingManrope;src:url('booking-assets/manrope.woff2')}@font-face{font-family:MJBookingBodoni;src:url('booking-assets/bodoni-moda.woff2')}.mj-booking{--ink:#20261f;--green:#394b36;--paper:#f4f2ec;--muted:#63695f;--line:#d1d5c9}.mj-booking *{box-sizing:border-box}.mj-booking{margin:0;background:#141914;color:#edece4;font:15px/1.6 MJBookingManrope,Arial,sans-serif}.mj-booking button,.mj-booking input,.mj-booking select{font:inherit}.mj-booking button{position:relative;overflow:hidden;min-height:46px;border:1px solid #80916d;border-radius:9px;padding:12px 23px;background:var(--green);color:#fff;cursor:pointer}.mj-booking button:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,248,220,.18),transparent);transform:translateX(-110%);transition:transform .4s}.mj-booking button:hover:before{transform:translateX(110%)}.mj-booking button:active{filter:brightness(1.15)}.mj-booking button:disabled{opacity:.45;cursor:not-allowed}.mj-booking :focus-visible{outline:3px solid #a6b881;outline-offset:4px}.mj-booking [hidden]{display:none!important}.mj-booking .testbar{text-align:center;background:#273123;padding:8px;font-size:11px;letter-spacing:.08em}.mj-booking .site-header,.mj-booking main,.mj-booking footer{max-width:1440px;margin:auto;padding:24px 5vw}.mj-booking .site-header{display:flex;justify-content:space-between;align-items:center}.mj-booking .site-header img{width:160px;height:56px;object-fit:contain}.mj-booking .site-header>span,.mj-booking .eyebrow{font-size:10px;letter-spacing:.22em}.mj-booking .intro{text-align:center;margin:18px auto 30px}.mj-booking .intro h1{font:400 clamp(36px,4.5vw,62px)/1.15 MJBookingBodoni,Georgia,serif;margin:12px 0}.mj-booking .intro p:last-child{color:#b8bdb1}.mj-booking .eyebrow{color:#a9b68c}.mj-booking .showcase{margin:0 -5vw}.mj-booking #rail{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:22px max(5vw,calc((100% - 380px)/2));align-items:center;overscroll-behavior-x:contain}.mj-booking #rail::-webkit-scrollbar{display:none}.mj-booking .service-card{border-radius:20px;flex:0 0 clamp(270px,29vw,380px);height:440px;position:relative;scroll-snap-align:center;transform:scale(.94);opacity:.65;transition:transform .35s,opacity .35s;isolation:isolate;overflow:hidden}.mj-booking .service-card.active,.mj-booking .service-card:focus-within{transform:scale(1);opacity:1}.mj-booking .service-card img{position:absolute;width:100%;height:100%;object-fit:cover;z-index:-2}.mj-booking .service-card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(8,15,10,.95));z-index:-1}.mj-booking .card-copy{position:absolute;bottom:0;padding:25px;width:100%}.mj-booking .card-copy h2{font:400 29px/1.1 MJBookingBodoni,Georgia,serif;margin:0 0 8px}.mj-booking .card-copy p{font-size:13px;color:#e1e4d8;margin:0 0 18px}.mj-booking .card-copy button{background:#eff0e7;color:#1d291e;border-color:#eff0e7;width:100%}.mj-booking .rail-controls{display:flex;justify-content:center;align-items:center;gap:24px}.mj-booking .rail-controls button{background:transparent;padding:6px;width:48px;font-size:24px}.mj-booking .rail-controls p{font-size:12px;min-width:50px;text-align:center}.mj-booking footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.14em;border-top:1px solid #303b2c;margin-top:25px}.mj-booking .secondary{background:transparent;color:var(--green)}.mj-booking #resume{color:#e5eadb;display:block;margin:20px auto}dialog.mj-booking{border:0;border-radius:14px;background:var(--paper);color:var(--ink);width:min(760px,calc(100vw - 48px));max-height:90dvh;padding:0;box-shadow:0 25px 100px #0009}dialog.mj-booking[open]{display:flex;flex-direction:column}dialog.mj-booking::backdrop{background:rgba(3,8,4,.78);backdrop-filter:blur(5px)}.mj-booking .modal-head{display:flex;justify-content:space-between;align-items:center;padding:23px 32px 16px;border-bottom:1px solid var(--line)}.mj-booking .modal-head .eyebrow{color:#60714c;margin:0 0 6px}.mj-booking .modal-head h2{font:400 30px/1.15 MJBookingBodoni,Georgia,serif;margin:0}.mj-booking #close{background:transparent;color:var(--ink);border:0;font-size:28px;padding:0 10px;flex:none}.mj-booking .progress{padding:12px 32px 0;font-size:11px;color:#68735f}.mj-booking #progress-track{height:3px;background:#d9dfce;margin-top:10px}.mj-booking #progress-track:after{content:'';display:block;height:3px;width:var(--progress,20%);background:#6d8150;transition:width .2s}.mj-booking .modal-body{padding:20px 32px;overflow:auto;overscroll-behavior:contain;min-height:0;flex:1}.mj-booking #summary-title{font-size:12px;color:#657358;margin:0 0 16px}.mj-booking .step{margin:0}.mj-booking .section-title{display:flex;align-items:center;gap:14px;margin-bottom:18px}.mj-booking .section-title>span{font-size:11px;color:#7b876b}.mj-booking .section-title h2{font:400 27px MJBookingBodoni,Georgia,serif;margin:0}.mj-booking label{display:block;font-size:13px;margin:14px 0 6px}.mj-booking input,.mj-booking select{width:100%;min-height:48px;padding:12px;border:1px solid #a7afa0;border-radius:8px;color:var(--ink);background:#fffef9}.mj-booking small{float:right;color:var(--muted)}.mj-booking .pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mj-booking .note{font-size:12px;color:var(--muted)}.mj-booking #find{margin-top:14px}.mj-booking #slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.mj-booking #slots button{background:transparent;color:var(--ink);font-size:13px;padding:8px 12px}.mj-booking #slots button[aria-pressed=true]{background:var(--green);color:white}.mj-booking .check{display:flex;gap:12px;align-items:flex-start;font-size:12px;margin:16px 0}.mj-booking .check input{width:18px;min-height:18px;flex:none;margin-top:4px}.mj-booking #card{min-height:100px}.mj-booking #pay{width:100%;margin-top:10px}.mj-booking .modal-actions{padding:16px 32px;display:flex;justify-content:space-between;border-top:1px solid var(--line);background:var(--paper)}.mj-booking #payment-summary{margin-top:20px;padding-top:12px;border-top:1px solid var(--line)}.mj-booking dl{display:flex;gap:24px;justify-content:space-between;margin:0}.mj-booking dt{font-size:11px;color:var(--muted)}.mj-booking dd{margin:4px 0 0;font-weight:700;font-size:17px}.mj-booking #message{font-size:13px;margin-top:12px}.mj-booking .error{color:#8b3428}.mj-booking #confirmation{overflow-wrap:anywhere;padding:12px 0 20px}.mj-booking #confirmation h2{font:400 36px MJBookingBodoni,Georgia,serif}.mj-booking #confirmation p{font-size:15px} @media(max-width:600px){.mj-booking .site-header>span{display:none}.mj-booking .site-header img{width:135px}.mj-booking .intro{margin:12px auto 16px}.mj-booking .intro h1{font-size:37px}.mj-booking .service-card{flex-basis:82vw;height:430px}.mj-booking #rail{padding-left:9vw;padding-right:9vw;gap:12px}.mj-booking .pair{grid-template-columns:1fr;gap:0}dialog.mj-booking{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:10px}.mj-booking .modal-head{padding:18px 20px 14px}.mj-booking .modal-head h2{font-size:26px}.mj-booking .progress{padding:12px 20px 0}.mj-booking .modal-body{padding:20px}.mj-booking .modal-actions{padding:14px 20px}.mj-booking dl{gap:12px}.mj-booking dd{font-size:15px}.mj-booking .card-copy h2{font-size:29px}.mj-booking footer{gap:20px}.mj-booking .testbar{font-size:9px}}@media(prefers-reduced-motion:reduce){.mj-booking *,.mj-booking *:before,.mj-booking *:after{transition:none!important;scroll-behavior:auto!important}}
/* Explicit modal height prevents Safari from collapsing its scrollable flex body. */
@media(min-width:601px){dialog.mj-booking{height:min(800px,90dvh)}}.mj-booking .modal-head,.mj-booking .progress,.mj-booking .modal-actions{flex-shrink:0}.mj-booking #payment-summary{margin-bottom:18px}
@media(max-width:600px){dialog.mj-booking{max-width:calc(100vw - 16px)}}.mj-booking .site-header img{filter:brightness(0) invert(1)}.mj-booking #rail:focus,.mj-booking #rail:focus-visible{outline:none}

.mj-booking .intro{font:15px/1.6 MJBookingManrope,Arial,sans-serif;letter-spacing:normal}.mj-booking .intro>p{margin:12px 0}.mj-booking .intro .eyebrow{font-size:10px}#headshots.mj-booking{padding:70px 5vw;overflow:hidden;margin:0;width:100%;max-width:none} .mj-booking .intro h2{font:400 clamp(36px,4.5vw,62px)/1.15 MJBookingBodoni,Georgia,serif;margin:12px 0}.mj-booking .card-copy h3{font:400 29px/1.1 MJBookingBodoni,Georgia,serif;margin:0 0 8px}dialog.mj-booking{margin:auto}.mj-booking .step{background:transparent;padding:0;width:auto;min-height:0}.mj-booking .intro .note{color:#b8bdb1}
/* Approved final refinements, isolated to the booking section and shared dialog. */
#headshots.mj-booking{min-height:100svh;padding:clamp(32px,5vh,64px) 5vw;display:flex;flex-direction:column;justify-content:center;gap:8px;scroll-margin-top:0}
#headshots.mj-booking .intro{margin:0 auto 8px}
#headshots.mj-booking .service-card{height:clamp(390px,57svh,680px);border-radius:20px;overflow:hidden}
#headshots.mj-booking .service-card img,#headshots.mj-booking .service-card:after{border-radius:inherit}
#headshots.mj-booking .rail-controls{margin-top:8px}
dialog.mj-booking{width:min(1160px,calc(100vw - 48px));max-width:1160px;height:min(850px,92dvh);max-height:92dvh}
dialog.mj-booking[open]{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr)}
.mj-booking .booking-form-panel{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.mj-booking .booking-context{position:relative;isolation:isolate;background:#172016;color:#f4f2ec;display:flex;align-items:flex-end;padding:32px;overflow:hidden}
.mj-booking .booking-context>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.mj-booking .booking-context:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 10%,#10190ddb 64%,#10190df5);z-index:-1}
.mj-booking .booking-context h2{font:400 clamp(29px,3vw,40px)/1.12 MJBookingBodoni,Georgia,serif;margin:0 0 16px}
.mj-booking .booking-context p{font-size:14px;line-height:1.6;margin:12px 0}
.mj-booking #context-inclusions{font-size:12px;color:#d0d7c5}
@media(max-width:700px){
 #headshots.mj-booking{min-height:100svh;padding:30px 5vw}
 #headshots.mj-booking .service-card{height:clamp(390px,56svh,540px)}
 dialog.mj-booking[open]{display:flex;flex-direction:column}
 dialog.mj-booking{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}
 .mj-booking .booking-context{min-height:100px;max-height:112px;flex-shrink:0;padding:12px 45px 12px 105px;align-items:center}
 .mj-booking .booking-context>img{width:90px;height:100%;object-position:center 30%;z-index:0}
 .mj-booking .booking-context:after{display:none}
 .mj-booking .booking-context h2{font-size:21px;margin:0 0 6px}
 .mj-booking .booking-context p{font-size:11px;margin:0;line-height:1.3}
 .mj-booking #context-inclusions{display:none}
 .mj-booking .booking-form-panel{flex:1}
 .mj-booking .modal-head{padding:8px 20px}.mj-booking .modal-head>div{display:none}
 .mj-booking #close{position:absolute;right:16px;top:12px;z-index:2;color:#fff;background:#142015b0}
 .mj-booking .progress{padding-top:0}.mj-booking .modal-body{padding-top:12px}
}

/* Viewport-sized booking panel: breathing room only, content dimensions unchanged. */
#headshots.mj-booking{min-height:100svh;padding-block:clamp(64px,9svh,112px);justify-content:center}
#headshots.mj-booking>#page-message:empty{display:none}
@media(max-width:600px){#headshots.mj-booking{padding-block:clamp(48px,8svh,72px)}}

/* Booking-only focus: programmatic headings are announced, not outlined. */
.mj-booking :focus:not(:focus-visible){outline:none}
.mj-booking :focus-visible{outline:2px solid #657358;outline-offset:3px}
.mj-booking .section-title h2:focus,.mj-booking #confirmation h2:focus{outline:none}
.mj-booking[data-booking-pointer] :focus{outline:none}
