/* Activated by responsive.js only. Desktop retains its existing presentation. */
.fdb-v2-touch-launch { min-height:44px; padding:12px 20px; }
#fdb-v2-builder.fdb-v2-touch {
    position:fixed !important; inset:var(--fdb-touch-top, 0px) 0 auto !important;
    width:100%; max-width:none; height:var(--fdb-touch-height, 100dvh); margin:0;
    z-index:100000; background:#f3f4f4; box-sizing:border-box;
    display:grid; grid-template-rows:auto minmax(0, 1fr) auto auto;
    overflow:hidden; padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);
}
#fdb-v2-builder.fdb-v2-touch *, #fdb-v2-builder.fdb-v2-touch *::before,
#fdb-v2-builder.fdb-v2-touch *::after { box-sizing:border-box; }
#fdb-v2-builder.fdb-v2-touch > h2 { display:none; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top {
    display:flex; align-items:center; gap:8px; padding:8px 12px; background:#fff; border-bottom:1px solid #ddd;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top strong { flex:1; font-size:14px; }
#fdb-v2-builder.fdb-v2-touch button { cursor:pointer; touch-action:manipulation; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top button,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar button {
    min-height:44px; padding:8px 10px; background:#fff; color:var(--fdb-ink); border:1px solid #ddd; font-size:12px;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-layout { display:flex; min-height:0; min-width:0; overflow:hidden; gap:0; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-preview-section {
    display:flex; flex-direction:column; align-items:stretch; position:relative !important; top:auto;
    flex:1; min-height:0; height:100%; width:100%; padding:8px 14px; overflow:hidden;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-preview-section > h3 { display:none; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-view-switch { align-self:center; width:min(100%, 360px); flex-shrink:0; padding:2px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-view-switch button { min-height:44px; padding:8px; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-view-label { margin:4px 0; padding:4px 8px; font-size:11px; flex-shrink:0; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-stage {
    flex:1; min-height:0; min-width:0; display:flex; align-items:center; justify-content:center; overflow:hidden;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-preview { flex:none; max-width:none; margin:0; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-preview > img,
#fdb-v2-builder.fdb-v2-touch #fdb-v2-preview-door {
    position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:contain;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-preview-placeholder { min-height:0; min-width:0; height:100%; padding:8px; font-size:13px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer {
    background:white; min-height:0; height:0; max-height:calc(var(--fdb-touch-height) - 210px); visibility:hidden; overflow:hidden;
    display:flex; flex-direction:column; border-radius:18px 18px 0 0;
    box-shadow:0 -5px 24px #00000012; transition:height .2s ease, visibility 0s linear .2s;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-drawer-open .fdb-v2-touch-drawer {
    visibility:visible; transition-delay:0s; height:clamp(180px, 38dvh, 430px); height:clamp(180px, calc(var(--fdb-touch-height) * .38), 430px);
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-drawer-open.fdb-v2-drawer-tall .fdb-v2-touch-drawer {
    height:calc(var(--fdb-touch-height) * .62);
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar { display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid #eee; flex-shrink:0; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar h2 { margin:0; flex:1; font-size:15px; line-height:1.3; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-content { overflow:auto; overscroll-behavior:contain; min-height:0; padding:0 12px 16px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-step-toolbar,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-section > h3,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-step-nav,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-section:not(.fdb-v2-touch-active) { display:none; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-step-panel { padding:12px 0; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-options { gap:10px 8px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-option { position:relative; min-height:44px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-option.is-selected { border-color:#23834b; box-shadow:inset 0 0 0 1px #23834b; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-option.is-selected::after {
    content:'✓'; position:absolute; right:3px; top:3px; display:grid; place-items:center;
    width:20px; height:20px; border-radius:50%; color:white; background:#23834b; font-size:13px;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-footer { padding:8px 12px calc(8px + env(safe-area-inset-bottom)); border-top:1px solid #ddd; background:white; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price { margin:0 0 8px; padding:0; border:0; gap:2px; display:grid; grid-template-columns:1fr auto; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price strong { font-size:18px; text-align:right; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price span { font-size:11px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price small { grid-column:1 / -1; max-width:none; font-size:10px; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-price-detail { grid-column:1 / -1; font-size:10px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav { display:grid; grid-template-columns:64px minmax(0,1fr) 72px; gap:8px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav button { min-height:48px; padding:8px; border:1px solid #ddd; background:white; color:var(--fdb-ink); font-size:13px; line-height:1.3; white-space:normal; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav button:last-child { background:var(--fdb-accent); color:white; border-color:var(--fdb-accent); }
#fdb-v2-builder.fdb-v2-touch button:disabled { opacity:.45; cursor:not-allowed; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-step { display:flex; align-items:center; gap:12px; width:100%; min-height:64px; padding:12px 0; border:0; border-bottom:1px solid #eee; text-align:left; background:white; color:var(--fdb-ink); font-size:13px; white-space:pre-line; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-step > span:last-child { flex:1; min-width:0; overflow-wrap:anywhere; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-check { color:#23834b; width:24px; flex-shrink:0; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-design-tools { border:0; padding:12px 0; margin:0; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form { max-width:none; }
#fdb-v2-builder.fdb-v2-touch input, #fdb-v2-builder.fdb-v2-touch textarea { font-size:16px; min-height:44px; }
/* Landscape phones and tablets use a side drawer, preserving preview height. */
@media (min-width:700px) and (orientation:landscape) {
    #fdb-v2-builder.fdb-v2-touch { grid-template-columns:minmax(0, 1fr) 0; grid-template-rows:auto minmax(0, 1fr) auto; }
    #fdb-v2-builder.fdb-v2-touch.fdb-v2-drawer-open { grid-template-columns:minmax(0, 1fr) minmax(320px, 42%); }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top,
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-footer { grid-column:1 / -1; }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer { grid-column:2; grid-row:2; border-radius:0; }
    #fdb-v2-builder.fdb-v2-touch.fdb-v2-drawer-open .fdb-v2-touch-drawer { height:100%; max-height:none; }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar button:nth-child(2) { display:none; }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-footer { display:flex; align-items:center; gap:20px; }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price { flex:1; margin:0; }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav { flex:1; }
}
@media (max-width:359px) {
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top strong { display:none; }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top button:nth-last-child(2) { margin-left:auto; }
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar { gap:4px; }
}
@media (prefers-reduced-motion:reduce) {
    #fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer { transition:none; }
}

/* A persistent handle above the navigation reopens the current choices. */
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-footer { position:relative; z-index:2; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-drawer-tab {
    position:absolute; bottom:calc(100% - 1px); left:50%; transform:translateX(-50%);
    min-width:132px; min-height:44px; padding:10px 16px; border:1px solid #ddd;
    border-bottom:0; border-radius:14px 14px 0 0; background:#fff; color:var(--fdb-ink);
    box-shadow:0 -3px 10px #00000010; font-size:12px; line-height:1.3; white-space:nowrap;
}
#fdb-v2-builder.fdb-v2-touch:not(.fdb-v2-drawer-open) #fdb-v2-preview-section { padding-bottom:48px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-content { padding-bottom:60px; }

/* Compact touch chrome: preview, choices and navigation have distinct surfaces. */
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top { padding:4px 10px; gap:8px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top strong { display:none; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top button:nth-last-child(2) { margin-left:auto; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-preview-section { background:#e3e6e8; padding-top:6px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-view-switch { width:min(100%, 280px); margin-bottom:6px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-view-switch button { padding:6px 10px; font-size:13px; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-view-label,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-colour-tabs,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar button:last-child { display:none; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar { padding:4px 12px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-drawer-bar h2 { font-size:14px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-drawer-expand { width:44px; font-size:21px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-footer { background:#252a2e; color:white; border-top:1px solid #41474d; padding-top:0; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price { display:flex; flex-direction:row; align-items:center; justify-content:center; gap:4px; min-height:44px; margin:0; padding:0; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price > span { display:none; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-live-price strong { font-size:17px; color:white; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-price-info { width:44px; min-height:44px; padding:6px; background:transparent; border:0; color:white; font-size:21px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav button { background:#343b40; border-color:#596167; color:white; min-height:44px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav button:nth-child(2) { background:transparent; border-color:transparent; font-size:12px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav button:last-child { background:var(--fdb-accent); border-color:var(--fdb-accent); }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-drawer-tab { background:#252a2e; color:white; border-color:#41474d; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-price-details { padding:18px 4px; font-size:14px; line-height:1.6; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-price-details > * { display:block; margin-bottom:12px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-footer button:focus-visible { outline-color:#fff; }

#fdb-v2-builder.fdb-v2-touch .fdb-v2-design-toolbar { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-design-toolbar h2,
#fdb-v2-builder.fdb-v2-touch #fdb-v2-toolbar-steps { display:none; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-resume-previous { grid-column:1 / -1; justify-content:center; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-design-tools { background:transparent; }

/* Theme button styles must not override the native hidden state. */
.fdb-v2-touch-launch[hidden] { display:none !important; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-door-styles { --fdb-image-height:115px; grid-template-columns:repeat(auto-fill, minmax(0, 80px)); }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-house-button { grid-column:1 / -1; }

/* One compact header; secondary actions live in a right-hand slide-out. */
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:8px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-top .fdb-v2-top-quote { background:var(--fdb-accent); border-color:var(--fdb-accent); color:white; font-weight:600; }
#fdb-v2-builder .fdb-v2-more-dialog { position:fixed; inset:0 0 0 auto; margin:0; width:min(320px,90vw); height:100dvh; max-height:100dvh; max-width:90vw; box-sizing:border-box; padding:20px; border:0; background:#f4f5f5; color:var(--fdb-ink); overflow-y:auto; }
#fdb-v2-builder .fdb-v2-more-dialog[open] { display:flex; flex-direction:column; gap:10px; animation:fdb-v2-more-enter .18s ease-out; }
#fdb-v2-builder .fdb-v2-more-dialog::backdrop { background:rgba(0,0,0,.45); }
#fdb-v2-builder .fdb-v2-more-dialog h2 { font-size:20px; margin:0 0 6px; }
#fdb-v2-builder .fdb-v2-more-dialog button { min-height:44px; padding:12px; border:1px solid #d3d7da; color:var(--fdb-ink); background:white; text-align:left; font-size:14px; }
#fdb-v2-builder .fdb-v2-more-dialog .fdb-v2-more-close { align-self:flex-end; }
@keyframes fdb-v2-more-enter { from { transform:translateX(100%); } to { transform:translateX(0); } }
@media (prefers-reduced-motion:reduce) { #fdb-v2-builder .fdb-v2-more-dialog[open] { animation:none; } }

/* Quote entry gets the available screen; the form remains scrollable above the keyboard. */
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open {
    grid-template-columns:minmax(0, 1fr);
    grid-template-rows:auto minmax(0, 1fr);
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-layout,
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-footer,
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open #fdb-v2-request-quote,
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-drawer-bar button:nth-child(2) {
    display:none;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-drawer {
    grid-column:1; grid-row:2; height:100%; max-height:none; border-radius:0; transition:none;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-content {
    flex:1; padding:0 16px calc(16px + env(safe-area-inset-bottom));
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open #fdb-v2-quote-form {
    margin:0; width:100%;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-drawer-bar button:last-child {
    display:block;
}

/* Match desktop card states without adding height to touch navigation. */
#fdb-v2-builder.fdb-v2-touch .fdb-v2-section {
    background:#f3faf5; border-color:#c3decc; margin:8px 0; border-radius:6px;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-step-panel { padding:10px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav button:last-child:not(:disabled) {
    background:#23834b; border-color:#23834b;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-check {
    display:grid; place-items:center; width:28px; height:28px; border-radius:50%;
    color:white; background:#23834b; font-weight:700;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-step:disabled .fdb-v2-touch-check { background:#aeb7bd; }
/* Keep the same three thumbnail sizes in the touch drawer. */
#fdb-v2-builder.fdb-v2-touch .fdb-v2-door-styles {
    --fdb-image-height:120px; --fdb-card-width:104px;
    grid-template-columns:repeat(auto-fill,minmax(0,var(--fdb-card-width)));
}

/* Clear incomplete-design guidance and compact mobile quote fields. */
#fdb-v2-builder .fdb-v2-quote-warning,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-quote-missing {
    box-sizing:border-box; display:block; width:100%; max-width:100%;
    white-space:normal; overflow-wrap:anywhere; height:auto; min-height:48px;
    padding:14px 16px; margin:0 0 16px; text-align:left; line-height:1.5;
    font-size:16px; font-weight:700; color:#663c08; background:#fff4d6;
    border:2px solid #c58b24; border-left-width:6px; border-radius:8px;
}
#fdb-v2-builder .fdb-v2-quote-warning[hidden],
#fdb-v2-builder .fdb-v2-quote-missing[hidden] { display:none; }
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-content { background:#f4f7f5; padding-top:12px; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form:not([hidden]) {
    display:grid; gap:12px; box-sizing:border-box; padding:16px;
    border:1px solid #dbe3dd; border-radius:10px; background:white;
}
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form label { display:block; margin:0; min-width:0; font-size:14px; font-weight:600; line-height:1.4; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form input,
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form textarea {
    box-sizing:border-box; width:100%; min-width:0; padding:10px 12px; margin:4px 0 0;
    min-height:44px; border:1px solid #cdd5d0; border-radius:6px; background:white;
    color:#303638; font-size:16px; line-height:1.4;
}
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form input:focus,
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form textarea:focus { outline:2px solid #39834d; outline-offset:1px; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form p { margin:0; font-size:15px; line-height:1.5; }
#fdb-v2-builder.fdb-v2-touch #fdb-v2-quote-form button[type=submit] { margin:0; padding:13px 12px; border-radius:6px; font-size:17px; white-space:normal; }

/* Compact swipe rows; expanding the drawer displays comparison grids. */
#fdb-v2-builder .fdb-v2-mobile-swipe-group { display:contents; }
#fdb-v2-builder.fdb-v2-touch :is(.fdb-v2-options,.fdb-v2-scroll-row,.fdb-v2-mobile-swipe-group) {
    display:flex; flex-wrap:nowrap; gap:6px; min-width:0; max-width:100%;
    overflow-x:auto; padding-bottom:10px; scrollbar-width:auto;
    scrollbar-color:#74867b #e1e7e3; scroll-snap-type:x proximity;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-options:has(> .fdb-v2-colour-group-heading) { display:block; overflow:visible; }
#fdb-v2-builder.fdb-v2-touch :is(.fdb-v2-options,.fdb-v2-scroll-row,.fdb-v2-mobile-swipe-group)::-webkit-scrollbar { height:8px; }
#fdb-v2-builder.fdb-v2-touch :is(.fdb-v2-options,.fdb-v2-scroll-row,.fdb-v2-mobile-swipe-group)::-webkit-scrollbar-thumb { background:#74867b; border-radius:8px; }
#fdb-v2-builder.fdb-v2-touch :is(.fdb-v2-options,.fdb-v2-scroll-row,.fdb-v2-mobile-swipe-group)::-webkit-scrollbar-track { background:#e1e7e3; border-radius:8px; }
#fdb-v2-builder.fdb-v2-touch .fdb-v2-option {
    box-sizing:border-box; flex:0 0 calc((100% - 18px) / 4); width:calc((100% - 18px) / 4);
    min-width:0; scroll-snap-align:start; font-size:11px; padding:4px; line-height:1.3;
}
#fdb-v2-builder.fdb-v2-touch :is(.fdb-v2-options,.fdb-v2-scroll-row) { --fdb-image-height:56px; }
#fdb-v2-builder.fdb-v2-touch :is(.fdb-v2-door-styles,.fdb-v2-frame-types,.fdb-v2-panel-types,.fdb-v2-panel-designs) { --fdb-image-height:88px; }
#fdb-v2-builder.fdb-v2-touch :is(.fdb-v2-door-colours,.fdb-v2-frame-colours,.fdb-v2-panel-glass,#fdb-v2-interior-door-colours,#fdb-v2-interior-frame-colours,#fdb-v2-glass-options,#fdb-v2-backing-options,#fdb-v2-top-glass-options,#fdb-v2-hardware-finishes) { --fdb-image-height:40px; }
#fdb-v2-builder.fdb-v2-touch.fdb-v2-drawer-tall :is(.fdb-v2-options,.fdb-v2-scroll-row,.fdb-v2-mobile-swipe-group),
#fdb-v2-builder.fdb-v2-touch .fdb-v2-scroll-row.is-expanded {
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow-x:hidden;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-drawer-tall .fdb-v2-options:has(> .fdb-v2-colour-group-heading) { display:block; }
#fdb-v2-builder.fdb-v2-touch.fdb-v2-drawer-tall .fdb-v2-option,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-scroll-row.is-expanded > .fdb-v2-option { width:100%; }

/* Incomplete navigation remains actionable to explain the missing selection. */
#fdb-v2-builder .fdb-v2-next.fdb-v2-incomplete-next,
#fdb-v2-builder.fdb-v2-touch .fdb-v2-touch-nav button.fdb-v2-incomplete-next {
    background:#e5e8e6; border-color:#ccd3ce; color:#505953; cursor:pointer;
}
#fdb-v2-builder .fdb-v2-choice-help {
    display:block; margin:8px 0; padding:10px 12px; background:#fff4d6;
    border-left:4px solid #bd861f; color:#663c08; font-size:14px; line-height:1.45;
    white-space:normal;
}
#fdb-v2-builder .fdb-v2-needs-choice { outline:2px solid #bd861f; outline-offset:2px; }

/* The quote form owns the visual viewport, including when the keyboard is open. */
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open {
    grid-template-rows:minmax(0,1fr);
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-top,
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-footer { display:none !important; }
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-drawer {
    grid-row:1; min-height:0; height:100% !important; max-height:100% !important;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-drawer-bar {
    min-height:44px; padding:2px 10px; gap:8px;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-drawer-bar button {
    min-height:40px; padding:6px 10px; font-size:13px;
}
#fdb-v2-builder.fdb-v2-touch.fdb-v2-quote-open .fdb-v2-touch-content {
    min-height:0; overflow-y:auto; padding:8px 10px max(12px,env(safe-area-inset-bottom));
    scroll-padding-block:12px; -webkit-overflow-scrolling:touch;
}

/* Always show locks as full-width rows, including the expanded mobile drawer. */
#fdb-v2-builder.fdb-v2-touch #fdb-v2-lock-options {
    display:grid; grid-template-columns:minmax(0,1fr); gap:10px;
    overflow:visible; padding-bottom:0; scroll-snap-type:none;
}
#fdb-v2-builder.fdb-v2-touch #fdb-v2-lock-options > .fdb-v2-option {
    grid-template-columns:80px minmax(0,1fr); gap:6px 12px; padding:12px;
    width:100%; flex:none; min-height:112px;
}
#fdb-v2-builder.fdb-v2-touch #fdb-v2-lock-options > .fdb-v2-option > img {
    height:80px;
}


/* Mobile preview view control: always visible above the door; horizontal swipe flips view. */
#fdb-v2-builder.fdb-v2-touch .fdb-v2-preview-section .fdb-v2-view-switch {
    display:grid !important;
    grid-template-columns:1fr 1fr;
    width:min(100%,280px);
    margin:0 auto 6px;
    padding:2px;
    flex-shrink:0;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-preview-section .fdb-v2-view-switch button {
    display:block !important;
    min-height:38px;
    padding:5px 10px;
    font-size:13px;
}
#fdb-v2-builder.fdb-v2-touch .fdb-v2-preview {
    touch-action:pan-y;
}
