
/*
 * Harley Street Hypnotist Questionnaire
 * Front-end layout
 * v1.2 - strict width normalisation to prevent theme/fieldset sizing interference
 */

.hshq-shell{
    --hshq-accent:#161616;
    --hshq-soft:#f5f3ef;
    display:block !important;
    width:820px !important;
    inline-size:820px !important;
    max-width:calc(100vw - 32px) !important;
    max-inline-size:calc(100vw - 32px) !important;
    min-width:0 !important;
    min-inline-size:0 !important;
    min-height:560px;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
    font-family:inherit;
    color:#1d1d1f;
    overflow-anchor:none;
    contain:layout style;
}

/* Force every screen to use the exact same available width. */
.hshq-shell .hshq-form,
.hshq-shell .hshq-step,
.hshq-shell .hshq-result{
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

/* Never allow theme/plugin !important rules to defeat the HTML hidden state. */
.hshq-shell [hidden]{
    display:none !important;
}

.hshq-shell .hshq-form,
.hshq-shell .hshq-result{
    min-height:500px;
}

/* Hidden steps stay hidden despite the display reset above. */
.hshq-shell .hshq-step{
    display:none !important;
    background:#fff;
    padding-left:0 !important;
    padding-right:0 !important;
}

.hshq-shell .hshq-step.is-active{
    display:block !important;
}

/*
 * Several themes apply intrinsic widths to fieldsets, legends, labels,
 * paragraphs and form grids. Neutralise those rules within this plugin.
 */
.hshq-shell .hshq-step > *,
.hshq-shell .hshq-question-wrap,
.hshq-shell .hshq-question-wrap fieldset,
.hshq-shell .hshq-question-wrap legend,
.hshq-shell .hshq-options,
.hshq-shell .hshq-grid,
.hshq-shell .hshq-nav,
.hshq-shell .hshq-copy,
.hshq-shell .hshq-section-intro,
.hshq-shell .hshq-reflection,
.hshq-shell .hshq-privacy,
.hshq-shell .hshq-error{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

.hshq-shell .hshq-question-wrap fieldset{
    display:block !important;
    border:0 !important;
    padding:0 !important;
    margin:0 !important;
    min-inline-size:0 !important;
}

.hshq-shell .hshq-question-wrap legend{
    display:block !important;
    float:none !important;
    padding:0 !important;
    margin:0 0 12px !important;
    white-space:normal !important;
}

.hshq-progress{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    height:6px;
    background:#ececec;
    border-radius:99px;
    overflow:hidden;
    margin:0 0 28px;
    box-sizing:border-box;
}

.hshq-progress span{
    display:block;
    height:100%;
    width:0;
    background:var(--hshq-accent);
    transition:width .25s ease;
}

.hshq-step h2,
.hshq-result h2{
    font-size:clamp(28px,4vw,44px);
    line-height:1.08;
    margin:0 0 20px;
}

.hshq-copy,
.hshq-section-intro{
    font-size:18px;
    line-height:1.65;
}

.hshq-kicker{
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:13px;
    font-weight:700;
    margin:0 0 10px;
}

.hshq-privacy{
    padding:14px 16px;
    background:var(--hshq-soft);
    border-radius:8px;
    font-size:14px;
}

.hshq-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:18px;
}

.hshq-grid label{
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    font-weight:650;
}

.hshq-grid label span,
.hshq-question-wrap legend span{
    color:#b42318;
}

.hshq-grid input,
.hshq-question-wrap input[type="text"],
.hshq-question-wrap input[type="email"],
.hshq-question-wrap input[type="tel"],
.hshq-question-wrap textarea{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin-top:7px;
    border:1px solid #cfcfcf;
    border-radius:8px;
    padding:13px 14px;
    font:inherit;
    background:#fff;
}

.hshq-question-wrap{
    display:block !important;
    margin:28px 0;
}

.hshq-question-wrap legend{
    font-size:19px;
    font-weight:400 !important;
    line-height:1.6;
}

.hshq-options{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:10px;
}

.hshq-option{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    cursor:pointer;
    margin:0 !important;
}

.hshq-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.hshq-option span{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    border:1px solid #d6d6d6;
    border-radius:8px;
    padding:14px 16px;
    background:#fff;
    transition:.15s;
    white-space:normal !important;
}

.hshq-option input:checked + span{
    border-color:#161616;
    box-shadow:inset 0 0 0 1px #161616;
    background:#f6f6f6;
}

.hshq-option span:hover{
    border-color:#777;
}

.hshq-reflection{
    background:var(--hshq-soft);
    border-radius:10px;
    padding:18px 20px;
    line-height:1.6;
    margin-bottom:20px;
    font-size:17px;
}

.hshq-nav{
    display:flex !important;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-top:30px;
}

.hshq-nav-start{
    justify-content:flex-end !important;
}

.hshq-btn{
    appearance:none;
    border:1px solid #161616;
    border-radius:7px;
    padding:13px 20px;
    background:#161616;
    color:#fff !important;
    text-decoration:none !important;
    font:inherit;
    font-weight:700;
    cursor:pointer;
    display:inline-block;
    box-sizing:border-box;
}

.hshq-btn:hover{
    opacity:.88;
}

.hshq-btn-secondary,
.hshq-back{
    background:#fff;
    color:#161616 !important;
}

.hshq-error{
    color:#b42318;
    font-weight:600;
    margin-top:14px;
}

.hshq-result{
    background:#fff;
}

.hshq-alt-actions{
    display:flex;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box;
    gap:10px;
    flex-wrap:wrap;
    margin-top:24px;
}

.hshq-alt-message{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box;
    margin-top:20px;
    background:var(--hshq-soft);
    padding:18px;
    border-radius:8px;
}

.hshq-book{
    margin-top:10px;
}


@media(max-width:640px){
    .hshq-shell{
        padding-left:4px !important;
        padding-right:4px !important;
    }

    .hshq-grid{
        grid-template-columns:minmax(0,1fr) !important;
    }

    .hshq-nav .hshq-btn{
        flex:1 1 0;
        min-width:0;
    }

    .hshq-step h2,
    .hshq-result h2{
        font-size:32px;
    }
}


/* v1.5 – Groq reflection */
.hshq-reflection.is-loading{
    position:relative;
    opacity:.78;
}

.hshq-reflection.is-loading::after{
    content:"";
    display:inline-block;
    width:13px;
    height:13px;
    margin-left:9px;
    border:2px solid currentColor;
    border-right-color:transparent;
    border-radius:50%;
    vertical-align:-2px;
    animation:hshqSpin .7s linear infinite;
}

.hshq-btn:disabled,
.hshq-option input:disabled + span{
    opacity:.55;
    cursor:wait;
}

@keyframes hshqSpin{
    to{transform:rotate(360deg)}
}


/* v1.6 – stable stage sizing and genuine completion screen */
.hshq-shell.is-complete .hshq-progress span{
    width:100% !important;
}

.hshq-result-screen{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    padding-top:8px;
}

.hshq-submitted-confirmation{
    display:flex;
    align-items:flex-start;
    gap:14px;
    width:100%;
    box-sizing:border-box;
    margin:0 0 30px;
    padding:16px 18px;
    border:1px solid #d9e7dc;
    border-radius:9px;
    background:#f4faf5;
    line-height:1.45;
}

.hshq-submitted-confirmation strong,
.hshq-submitted-confirmation span{
    display:block;
}

.hshq-submitted-confirmation strong{
    margin-bottom:3px;
    font-size:16px;
}

.hshq-submitted-icon{
    display:flex !important;
    align-items:center;
    justify-content:center;
    flex:0 0 30px;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#187a34;
    color:#fff;
    font-size:18px;
    font-weight:700;
    line-height:1;
}

.hshq-result-action{
    margin-top:26px;
}

@media(max-width:640px){
    .hshq-shell{
        width:calc(100vw - 24px) !important;
        inline-size:calc(100vw - 24px) !important;
        max-width:calc(100vw - 24px) !important;
        max-inline-size:calc(100vw - 24px) !important;
        min-height:0;
    }

    .hshq-shell .hshq-form,
    .hshq-shell .hshq-result{
        min-height:0;
    }
}


/* v1.10.2 – refined Calendly-style Deep Dive Call booking */
.hshq-shell.is-complete{
    width:980px !important;
    inline-size:980px !important;
    max-width:calc(100vw - 32px) !important;
    max-inline-size:calc(100vw - 32px) !important;
}
.hshq-booking{
    --hshq-book-gold:#c8a66b;
    --hshq-book-gold-soft:#f6f0e5;
    --hshq-book-border:#e5e1da;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    margin-top:32px;
    padding:34px;
    border:1px solid var(--hshq-book-border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 16px 45px rgba(24,24,24,.08);
    font-size:18px;
    line-height:1.55;
}
.hshq-booking-head{margin-bottom:28px}
.hshq-booking-eyebrow{
    margin:0 0 8px !important;
    color:#8a6b38;
    font-size:14px !important;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.hshq-booking-head h3{
    margin:0 0 10px;
    font-size:32px;
    line-height:1.15;
    letter-spacing:-.02em;
}
.hshq-booking-head p:not(.hshq-booking-eyebrow){
    margin:0;
    max-width:720px;
    color:#575757;
    font-size:18px;
    line-height:1.6;
}
.hshq-booking-status{
    padding:17px 18px;
    border-radius:10px;
    background:#faf9f7;
    border:1px solid var(--hshq-book-border);
    font-size:17px;
}
.hshq-booking-status.is-error{color:#b42318;border-color:#f0b4ae;background:#fff7f6}
.hshq-booking-controls{width:100%;box-sizing:border-box}
.hshq-booking-field{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    border:0;
    padding:0;
    margin:0;
}
.hshq-booking-field legend{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    padding:0;
    margin:0 0 14px;
    font-size:20px;
    line-height:1.35;
    font-weight:800;
}
.hshq-booking-field legend>span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 30px;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#292929;
    color:#fff;
    font-size:15px;
    font-weight:800;
}
.hshq-booking-format-field{
    padding:0 0 28px;
    margin:0 0 28px;
    border-bottom:1px solid #eeeae4;
}
.hshq-booking-format{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.hshq-booking-format-option{display:block;cursor:pointer;min-width:0}
.hshq-booking-format-option input,.hshq-booking-time input{position:absolute;opacity:0;pointer-events:none}
.hshq-booking-format-option span{
    position:relative;
    display:block;
    min-height:94px;
    height:100%;
    box-sizing:border-box;
    border:1px solid #dedad3;
    background:#fff;
    border-radius:12px;
    padding:18px 20px 18px 54px;
    transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .15s ease;
}
.hshq-booking-format-option span:before{
    content:'';
    position:absolute;
    left:20px;
    top:22px;
    width:18px;
    height:18px;
    border:2px solid #b8b3aa;
    border-radius:50%;
    box-sizing:border-box;
    background:#fff;
}
.hshq-booking-format-option strong{display:block;font-size:19px;line-height:1.3;color:#1f1f1f}
.hshq-booking-format-option small{display:block;margin-top:6px;font-size:16px;line-height:1.45;color:#626262}
.hshq-booking-format-option:hover span{border-color:#bda16f;box-shadow:0 7px 20px rgba(25,25,25,.06);transform:translateY(-1px)}
.hshq-booking-format-option input:focus-visible+span{outline:3px solid rgba(200,166,107,.28);outline-offset:2px}
.hshq-booking-format-option input:checked+span{border-color:#292929;box-shadow:inset 0 0 0 1px #292929;background:#fbfaf8}
.hshq-booking-format-option input:checked+span:before{border-color:#292929;box-shadow:inset 0 0 0 4px #fff;background:#292929}

.hshq-booking-layout{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(250px,.75fr);
    gap:28px;
    align-items:start;
}
.hshq-booking-date-field,.hshq-booking-time-field{min-width:0}
.hshq-booking-time-field{
    padding:20px !important;
    border:1px solid var(--hshq-book-border) !important;
    border-radius:14px;
    background:#faf9f7;
}
.hshq-booking-selected-date{
    margin:-4px 0 16px !important;
    min-height:24px;
    color:#68635b;
    font-size:16px !important;
    font-weight:650;
}
.hshq-booking-calendar{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    border:1px solid var(--hshq-book-border);
    border-radius:14px;
    overflow:hidden;
    background:#fff;
}
.hshq-booking-calendar-head{
    display:grid;
    grid-template-columns:44px 1fr 44px;
    align-items:center;
    gap:8px;
    padding:15px 16px;
    border-bottom:1px solid #eeeae4;
    background:#fff;
}
.hshq-booking-calendar-head strong{
    text-align:center;
    font-size:20px;
    line-height:1.3;
    letter-spacing:-.01em;
}
.hshq-booking-cal-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    padding:0;
    border:1px solid transparent;
    border-radius:50%;
    background:transparent;
    color:#292929;
    font-size:30px;
    line-height:1;
    cursor:pointer;
    transition:background .15s ease,border-color .15s ease;
}
.hshq-booking-cal-nav:hover:not(:disabled),.hshq-booking-cal-nav:focus-visible:not(:disabled){background:#f5f2ed;border-color:#e1ddd5;outline:none}
.hshq-booking-cal-nav:disabled{opacity:.2;cursor:not-allowed}
.hshq-booking-calendar-week,.hshq-booking-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.hshq-booking-calendar-week{padding:12px 13px 4px;background:#fff}
.hshq-booking-calendar-week span{padding:5px 2px;text-align:center;font-size:14px;font-weight:750;color:#77716a}
.hshq-booking-calendar-days{row-gap:7px;column-gap:2px;padding:7px 13px 17px}
.hshq-booking-calendar-day{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    justify-self:center;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    padding:0;
    border:1px solid transparent;
    border-radius:50%;
    background:transparent;
    color:#b7b2aa;
    font:inherit;
    font-size:16px;
    font-weight:650;
    line-height:1;
    box-sizing:border-box;
}
.hshq-booking-calendar-day.is-unavailable{color:#c2beb7;cursor:not-allowed;background:transparent}
.hshq-booking-calendar-day.is-available{color:#252525;background:var(--hshq-book-gold-soft);cursor:pointer;font-weight:800}
.hshq-booking-calendar-day.is-available:hover,.hshq-booking-calendar-day.is-available:focus-visible{border-color:var(--hshq-book-gold);background:#efe3ce;outline:none}
.hshq-booking-calendar-day.is-selected{background:#292929;color:#fff;border-color:#292929;box-shadow:0 4px 12px rgba(0,0,0,.16)}
.hshq-booking-calendar-day.is-today:not(.is-selected){border-color:var(--hshq-book-gold);background:#fff}
.hshq-booking-calendar-day.is-outside{visibility:hidden}
.hshq-booking-calendar-loading{grid-column:1/-1;display:block;padding:35px 12px;text-align:center;color:#68635b;font-size:16px}
.hshq-booking-calendar-loading.is-error{color:#b42318}

.hshq-booking-times{display:grid;grid-template-columns:1fr;gap:10px}
.hshq-booking-time{display:block;cursor:pointer;margin:0}
.hshq-booking-time span{
    display:block;
    width:100%;
    box-sizing:border-box;
    text-align:center;
    border:1px solid #cfc8bc;
    background:#fff;
    color:#292929;
    border-radius:9px;
    padding:12px 10px;
    font-size:17px;
    font-weight:800;
    transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease;
}
.hshq-booking-time:hover span{border-color:var(--hshq-book-gold);transform:translateY(-1px)}
.hshq-booking-time input:focus-visible+span{outline:3px solid rgba(200,166,107,.28);outline-offset:2px}
.hshq-booking-time input:checked+span{border-color:#292929;background:#292929;color:#fff}
.hshq-booking-hint{grid-column:1/-1;display:block;padding:18px 15px;border:1px dashed #d8d2c8;border-radius:9px;background:#fff;color:#6c675f;font-size:16px;line-height:1.5;text-align:center}
.hshq-booking-error{min-height:0;color:#b42318;font-size:15px;font-weight:650;margin:12px 0 0}
.hshq-booking-error:empty{display:none}
.hshq-booking-submit{
    width:100%;
    min-height:52px;
    margin-top:16px;
    border-radius:9px !important;
    font-size:17px !important;
}
.hshq-booking-submit:disabled{opacity:.35;cursor:not-allowed}
.hshq-booked-confirmation{display:flex;gap:14px;align-items:center;width:100%;box-sizing:border-box;padding:18px 20px;border-radius:12px;background:#edf8f0;border:1px solid #b9dfc2;margin:22px 0}.hshq-booked-confirmation strong{display:block;font-size:20px}.hshq-booked-confirmation span:not(.hshq-submitted-icon){display:block;margin-top:4px}.hshq-booking-location{margin-top:18px;padding:16px 18px;background:#f7f6f3;border-left:4px solid #c8a66b;line-height:1.6}

@media(max-width:820px){
    .hshq-shell.is-complete{width:100% !important;inline-size:100% !important;max-width:calc(100vw - 24px) !important;max-inline-size:calc(100vw - 24px) !important}
    .hshq-booking{padding:24px;border-radius:14px}
    .hshq-booking-head h3{font-size:28px}
    .hshq-booking-layout{grid-template-columns:1fr;gap:24px}
    .hshq-booking-time-field{padding:18px !important}
    .hshq-booking-times{grid-template-columns:repeat(2,minmax(0,1fr))}
    .hshq-booking-hint{grid-column:1/-1}
}
@media(max-width:560px){
    .hshq-booking{padding:18px;margin-top:24px;font-size:17px}
    .hshq-booking-head h3{font-size:25px}
    .hshq-booking-head p:not(.hshq-booking-eyebrow){font-size:17px}
    .hshq-booking-format{grid-template-columns:1fr}
    .hshq-booking-format-option span{min-height:86px;padding:16px 16px 16px 50px}
    .hshq-booking-field legend{font-size:18px}
    .hshq-booking-calendar-head{grid-template-columns:38px 1fr 38px;padding:11px 10px}
    .hshq-booking-calendar-head strong{font-size:18px}
    .hshq-booking-cal-nav{width:36px;height:36px;font-size:27px}
    .hshq-booking-calendar-week{padding-left:6px;padding-right:6px}
    .hshq-booking-calendar-week span{font-size:12px}
    .hshq-booking-calendar-days{row-gap:4px;padding:6px 5px 13px}
    .hshq-booking-calendar-day{width:38px;height:38px;min-width:38px;min-height:38px;font-size:14px}
    .hshq-booking-times{grid-template-columns:1fr}
}


/* v1.11 – supplied questionnaire wording */
.hshq-question-wrap legend{
    text-transform:none !important;
    letter-spacing:normal !important;
    font-style:normal !important;
}
.hshq-reflection-only{margin-top:20px !important}
.hshq-reflection-only .hshq-reflection{margin-bottom:0}


/* v1.11.2 – complete responsive pass: questionnaire, results and booking */
.hshq-shell,
.hshq-shell.is-complete{
    width:100% !important;
    inline-size:100% !important;
    min-width:0 !important;
    min-inline-size:0 !important;
    box-sizing:border-box !important;
}
.hshq-shell{max-width:820px !important;max-inline-size:820px !important}
.hshq-shell.is-complete{max-width:980px !important;max-inline-size:980px !important}
.hshq-shell *,
.hshq-shell *::before,
.hshq-shell *::after{box-sizing:border-box}
.hshq-shell p,
.hshq-shell li,
.hshq-shell label,
.hshq-shell legend,
.hshq-shell span,
.hshq-shell strong,
.hshq-shell a,
.hshq-shell button{overflow-wrap:anywhere}
.hshq-grid input,
.hshq-question-wrap input[type="text"],
.hshq-question-wrap input[type="email"],
.hshq-question-wrap input[type="tel"],
.hshq-question-wrap textarea{font-size:16px !important}
.hshq-question-wrap textarea{resize:vertical;min-height:130px}
.hshq-nav{flex-wrap:wrap}
.hshq-nav .hshq-btn{max-width:100%;white-space:normal;text-align:center}
.hshq-alt-actions .hshq-btn{white-space:normal;text-align:center}
.hshq-booking{max-width:100% !important;min-width:0 !important}
.hshq-booking-layout>*{min-width:0;max-width:100%}
.hshq-booking-calendar{min-width:0;max-width:100%}
.hshq-booking-calendar-week,
.hshq-booking-calendar-days{width:100%;min-width:0}
.hshq-booking-calendar-week span{min-width:0}
.hshq-booking-calendar-day{
    width:100%;
    max-width:44px;
    min-width:0;
    height:auto;
    min-height:0;
    aspect-ratio:1 / 1;
}
.hshq-booking-times{min-width:0}
.hshq-booking-time span{white-space:normal}
.hshq-booked-confirmation>div{min-width:0}

@media(max-width:820px){
    .hshq-shell,
    .hshq-shell.is-complete{max-width:100% !important;max-inline-size:100% !important}
}

@media(max-width:640px){
    .hshq-shell{padding-left:0 !important;padding-right:0 !important}
    .hshq-progress{margin-bottom:22px}
    .hshq-step h2,.hshq-result h2{font-size:clamp(27px,9vw,34px);line-height:1.12}
    .hshq-copy,.hshq-section-intro{font-size:17px;line-height:1.58}
    .hshq-question-wrap{margin:22px 0}
    .hshq-question-wrap legend{font-size:18px;line-height:1.52;margin-bottom:10px !important}
    .hshq-option span{padding:13px 14px}
    .hshq-reflection{padding:16px;font-size:16px}
    .hshq-nav{margin-top:24px}
    .hshq-btn{min-height:48px;padding:12px 16px}
    .hshq-submitted-confirmation{padding:14px 15px;margin-bottom:24px}
    .hshq-booking{padding:22px;margin-top:24px;border-radius:14px}
    .hshq-booking-head{margin-bottom:22px}
    .hshq-booking-head h3{font-size:27px}
    .hshq-booking-head p:not(.hshq-booking-eyebrow){font-size:17px}
    .hshq-booking-format-field{padding-bottom:22px;margin-bottom:22px}
    .hshq-booking-layout{gap:20px}
    .hshq-booking-time-field{padding:16px !important}
    .hshq-booking-calendar-head{grid-template-columns:38px minmax(0,1fr) 38px;padding:11px 10px}
    .hshq-booking-calendar-head strong{font-size:18px;white-space:normal}
    .hshq-booking-calendar-week{padding:9px 6px 3px}
    .hshq-booking-calendar-week span{font-size:12px;padding:4px 0}
    .hshq-booking-calendar-days{gap:4px 2px;padding:6px 6px 12px}
    .hshq-booking-calendar-day{max-width:40px;font-size:14px}
}

@media(max-width:480px){
    .hshq-shell{font-size:16px}
    .hshq-step h2,.hshq-result h2{font-size:clamp(25px,8.5vw,31px)}
    .hshq-kicker{font-size:12px}
    .hshq-privacy{padding:12px 13px;font-size:13px}
    .hshq-grid{gap:14px}
    .hshq-grid input,
    .hshq-question-wrap input[type="text"],
    .hshq-question-wrap input[type="email"],
    .hshq-question-wrap input[type="tel"],
    .hshq-question-wrap textarea{padding:12px 12px}
    .hshq-nav{gap:9px}
    .hshq-nav .hshq-btn{flex:1 1 calc(50% - 5px)}
    .hshq-alt-actions{display:grid;grid-template-columns:1fr;gap:9px}
    .hshq-alt-actions .hshq-btn{width:100%}
    .hshq-booking{padding:16px;border-radius:12px;box-shadow:0 10px 28px rgba(24,24,24,.07)}
    .hshq-booking-head h3{font-size:24px}
    .hshq-booking-eyebrow{font-size:12px !important}
    .hshq-booking-field legend{font-size:17px;gap:8px}
    .hshq-booking-field legend>span{width:28px;height:28px;flex-basis:28px;font-size:14px}
    .hshq-booking-format{gap:10px}
    .hshq-booking-format-option span{min-height:0;padding:14px 12px 14px 46px}
    .hshq-booking-format-option span:before{left:15px;top:17px}
    .hshq-booking-format-option strong{font-size:18px}
    .hshq-booking-format-option small{font-size:15px}
    .hshq-booking-time-field{padding:14px !important}
    .hshq-booking-calendar-head{grid-template-columns:34px minmax(0,1fr) 34px;padding:9px 7px;gap:4px}
    .hshq-booking-cal-nav{width:34px;height:34px;font-size:25px}
    .hshq-booking-calendar-head strong{font-size:16px}
    .hshq-booking-calendar-week{padding:7px 3px 2px}
    .hshq-booking-calendar-week span{font-size:11px}
    .hshq-booking-calendar-days{padding:5px 3px 10px;column-gap:1px;row-gap:3px}
    .hshq-booking-calendar-day{max-width:38px;font-size:13px}
    .hshq-booking-selected-date{font-size:15px !important}
    .hshq-booking-time span{font-size:16px;padding:11px 8px}
    .hshq-booking-hint{padding:14px 12px;font-size:15px}
    .hshq-booked-confirmation{padding:15px;align-items:flex-start}
    .hshq-booked-confirmation strong{font-size:18px}
}

@media(max-width:360px){
    .hshq-progress{height:5px;margin-bottom:18px}
    .hshq-copy,.hshq-section-intro{font-size:16px}
    .hshq-question-wrap legend{font-size:17px}
    .hshq-nav{display:grid !important;grid-template-columns:1fr;width:100%}
    .hshq-nav .hshq-btn{width:100%;flex:none}
    .hshq-nav-start{display:block !important}
    .hshq-nav-start .hshq-btn{width:100%}
    .hshq-submitted-confirmation{gap:10px;padding:12px}
    .hshq-submitted-icon{width:28px;height:28px;flex-basis:28px}
    .hshq-booking{padding:12px;margin-top:18px;border-radius:10px}
    .hshq-booking-status{padding:13px;font-size:15px}
    .hshq-booking-calendar{border-radius:10px}
    .hshq-booking-calendar-head{grid-template-columns:32px minmax(0,1fr) 32px;padding:8px 5px}
    .hshq-booking-cal-nav{width:32px;height:32px}
    .hshq-booking-calendar-head strong{font-size:15px}
    .hshq-booking-calendar-week span{font-size:10px}
    .hshq-booking-calendar-day{max-width:34px;font-size:12px}
    .hshq-booking-time-field{padding:12px !important}
}

@media(max-width:320px){
    .hshq-booking{padding:10px}
    .hshq-booking-calendar-week{padding-left:1px;padding-right:1px}
    .hshq-booking-calendar-days{padding-left:1px;padding-right:1px}
    .hshq-booking-calendar-day{max-width:32px}
}

/* v1.11.3 – stable questionnaire width, in-place progress and answer review */
.hshq-shell:not(.is-complete){
    width:100% !important;
    inline-size:100% !important;
    max-width:820px !important;
    max-inline-size:820px !important;
    min-width:0 !important;
    min-inline-size:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
}
.hshq-shell .hshq-form,
.hshq-shell .hshq-step{
    width:100% !important;
    inline-size:100% !important;
    max-width:100% !important;
    max-inline-size:100% !important;
    min-width:0 !important;
    min-inline-size:0 !important;
    flex:0 0 100% !important;
    align-self:stretch !important;
}
.hshq-shell .hshq-question-wrap,
.hshq-shell .hshq-question-wrap fieldset,
.hshq-shell .hshq-question-wrap legend,
.hshq-shell .hshq-options,
.hshq-shell .hshq-option,
.hshq-shell .hshq-option span,
.hshq-shell .hshq-grid,
.hshq-shell .hshq-review{
    inline-size:100% !important;
    max-inline-size:100% !important;
    min-inline-size:0 !important;
}

/* The progress indicator belongs to the active question, after its answer. */
.hshq-shell .hshq-progress{
    width:100% !important;
    max-width:100% !important;
    height:6px;
    margin:24px 0 0 !important;
}
.hshq-shell .hshq-progress + .hshq-nav{
    margin-top:18px !important;
}

/* Final review contains only the visitor's own answers – no interpretation. */
.hshq-review-intro{
    margin:0 0 24px;
    font-size:18px;
    line-height:1.6;
}
.hshq-review{
    display:block;
    margin:0;
}
.hshq-review-group{
    width:100%;
    margin:0 0 28px;
    padding:0;
}
.hshq-review-group:last-child{margin-bottom:0}
.hshq-review-group h3{
    margin:0 0 12px;
    padding-bottom:9px;
    border-bottom:1px solid #dedede;
    font-size:17px;
    line-height:1.4;
    font-weight:700;
}
.hshq-review-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:18px;
    align-items:start;
    width:100%;
    padding:16px 0;
    border-bottom:1px solid #ececec;
}
.hshq-review-item:last-child{border-bottom:0}
.hshq-review-content{min-width:0}
.hshq-review-question{
    margin:0 0 6px !important;
    font-size:17px;
    line-height:1.55;
    font-weight:400 !important;
}
.hshq-review-answer{
    margin:0 !important;
    padding:0;
    color:#565656;
    font-size:17px;
    line-height:1.6;
    font-weight:400 !important;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}
.hshq-review-change{
    appearance:none;
    margin:2px 0 0;
    padding:7px 11px;
    border:1px solid #bdbdbd;
    border-radius:6px;
    background:#fff;
    color:#161616;
    font:inherit;
    font-size:14px;
    font-weight:600;
    line-height:1.2;
    cursor:pointer;
}
.hshq-review-change:hover,
.hshq-review-change:focus-visible{
    border-color:#161616;
    outline:none;
}

@media(max-width:640px){
    .hshq-shell:not(.is-complete){
        max-width:100% !important;
        max-inline-size:100% !important;
    }
    .hshq-shell .hshq-progress{
        height:5px;
        margin-top:20px !important;
    }
    .hshq-shell .hshq-progress + .hshq-nav{
        margin-top:15px !important;
    }
    .hshq-review-intro{font-size:17px}
    .hshq-review-item{
        grid-template-columns:1fr;
        gap:10px;
        padding:14px 0;
    }
    .hshq-review-change{
        justify-self:start;
        min-height:40px;
        padding:9px 13px;
    }
}

@media(max-width:360px){
    .hshq-review-question,
    .hshq-review-answer{font-size:16px}
    .hshq-review-change{width:100%;text-align:center}
}

/* ------------------------------------------------------------------
 * v1.12.0 client journey: pay -> intake form -> book
 * ------------------------------------------------------------------ */
.hshq-journey{--hshq-gold:#c8a66b;--hshq-gold-soft:#f6f0e5;width:100%;max-width:100%;box-sizing:border-box}
.hshq-journey *{box-sizing:border-box}
.hshq-journey-steps{list-style:none;margin:0 0 26px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hshq-journey-steps li{display:flex;align-items:center;gap:10px;margin:0;padding:12px 14px;border:1px solid #e5e1da;border-radius:10px;background:#fff;color:#6b6b6b;font-size:15px;line-height:1.3;min-width:0}
.hshq-journey-steps li span:last-child{min-width:0;overflow-wrap:anywhere}
.hshq-journey-num{flex:0 0 28px;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#f1efeb;color:#555;font-weight:800;font-size:14px}
.hshq-journey-steps li.is-current{border-color:var(--hshq-gold);background:var(--hshq-gold-soft);color:#1d1d1f;font-weight:700}
.hshq-journey-steps li.is-current .hshq-journey-num{background:var(--hshq-gold);color:#1f1f1f}
.hshq-journey-steps li.is-done{color:#1d1d1f}
.hshq-journey-steps li.is-done .hshq-journey-num{background:#1d1d1f;color:#fff}
.hshq-journey-actions{margin:24px 0 10px}
.hshq-journey-actions .hshq-btn{display:inline-block;text-decoration:none;text-align:center}
.hshq-journey-wait{display:flex;align-items:center;gap:12px;margin:18px 0;padding:14px 16px;border-radius:10px;background:var(--hshq-gold-soft);border-left:4px solid var(--hshq-gold);font-weight:600}
.hshq-spinner{flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:3px solid rgba(0,0,0,.12);border-top-color:var(--hshq-gold);animation:hshq-spin .8s linear infinite}
@keyframes hshq-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.hshq-spinner{animation:none}}
.hshq-intake-wrap{width:100%;max-width:100%;margin:22px 0 0}
.hshq-intake-frame{display:block;width:100%;min-height:720px;border:0;background:#fff}
.hshq-intake-wrap .hshq-booking-error.is-info{color:#1d1d1f}

.hshq-packages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:820px;margin:0 auto}
.hshq-package{border:1px solid #e5e1da;border-top:4px solid #c8a66b;border-radius:12px;padding:22px;background:#fff;display:flex;flex-direction:column;gap:10px}
.hshq-package h3{margin:0;font-size:21px}
.hshq-package-price{font-size:24px;font-weight:800}
.hshq-package-price del{color:#b42318;font-weight:600;font-size:.75em;margin-right:6px}
.hshq-package-price ins{text-decoration:none}
.hshq-package .hshq-btn{margin-top:auto;text-align:center;text-decoration:none}
.hshq-package-offer{grid-column:1/-1;margin:4px 0 0;text-align:center}

@media (max-width:640px){
    .hshq-journey-steps{grid-template-columns:minmax(0,1fr);gap:8px}
    .hshq-journey-steps li{padding:10px 12px;font-size:14px}
    .hshq-journey-actions .hshq-btn{display:block;width:100%}
    .hshq-packages{grid-template-columns:minmax(0,1fr)}
}
