/* Local demo collection. One open composition, with a quiet drawing surface. */
.aircraft-configurator { display: block; padding: 0; text-align: left; }
.configuration-content { width: 100%; height: 100%; overflow-y: auto; padding: 32px 40px 88px; scrollbar-width: thin; scrollbar-color: #95838955 transparent; }
.configuration-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.configuration-eyebrow { margin: 0 0 10px; text-transform: uppercase; letter-spacing: .16em; font-size: 9px; color: #766b6d; }
.aircraft-configurator h2 { font-size: clamp(26px,2.55vw,42px); line-height: 1.2; letter-spacing: -.065em; }
.aircraft-configurator h2 span { color: #827379; }
.configuration-preview { font-size: 10px; white-space: nowrap; color: #766b6d; }
.configuration-preview > span { margin-inline: 7px; }
.aircraft-choices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; min-width: 0; margin: 26px 0 22px; padding: 0; border: 0; }
.aircraft-choice, .finish-choice, .layout-choice { position: relative; display: block; min-width: 0; cursor: pointer; }
.aircraft-choice input, .finish-choice input, .layout-choice input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.aircraft-choice-content { display: grid; grid-template-columns: 24px 1fr; gap: 5px 10px; padding: 18px 20px; border-radius: 18px; background: #ffffff2e; transition: background .25s, box-shadow .25s; }
.aircraft-choice input:checked + .aircraft-choice-content { background: #fff; box-shadow: 0 5px 24px #6b47440a; }
.aircraft-choice:hover .aircraft-choice-content { background: #ffffffa0; }
.aircraft-choice input:checked + .aircraft-choice-content::after { content: ''; grid-column: 2; width: 24px; height: 2px; margin-top: 3px; background: #79656d; border-radius: 2px; }
.aircraft-choice-number { font-size: 10px; padding-top: 4px; color: #8a7e80; grid-row: span 3; }
.aircraft-choice-name { font-family: Sora, sans-serif; font-size: 15px; letter-spacing: -.55px; }
.aircraft-choice-meta { grid-column: 2; font-size: 10px; color: #827779; }
.configuration-workspace { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(295px,1fr); gap: 32px; min-height: 300px; }
.configuration-visual { position: relative; display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 24px 28px; border-radius: 26px; background: radial-gradient(ellipse at 50% 60%,#29312b,#151b18 75%); color: #eeede5; overflow: hidden; }
.configuration-visual-heading { display: flex; align-items: center; justify-content: space-between; font-size: 10px; color: #a9aca3; gap: 12px; }
.configuration-drawing { display: grid; place-items: center; flex: 1; min-height: 150px; overflow: hidden; }
.configuration-plane { display: block; width: 100%; max-height: clamp(160px,25vh,300px); overflow: visible; transform-origin: 43% 50%; transition: transform .65s cubic-bezier(.2,.7,.2,1); }
.configuration-airframe { filter: drop-shadow(0 16px 14px #03080666); }
.configuration-airframe path { stroke-linecap: round; stroke-linejoin: round; }
.aircraft-configurator:not([data-mode=exterior]) .configuration-plane { transform: scale(2.3); }
.aircraft-configurator:not([data-mode=exterior]) :is(.config-wing,.config-engine,.config-line) { opacity: .12; }
.aircraft-configurator:not([data-mode=exterior]) .config-fuselage { opacity: 0; }
.config-wing { fill: var(--aircraft-paint); stroke: var(--aircraft-paint); stroke-width: 1.5; fill-opacity: .9; transition: fill .4s, stroke .4s; }
.config-engine { fill: var(--aircraft-paint); stroke: #ffffff70; stroke-width: 1.5; transition: fill .4s; }
.config-fuselage { fill: url(#configuration-metal); stroke: #ffffff80; stroke-width: 1.3; }
.config-line { fill: none; stroke: #10191965; stroke-width: 1.4; }
.config-stripe { fill: none; stroke: var(--aircraft-accent); stroke-width: 2.7; transition: stroke .4s; }
.configuration-cabin { opacity: 0; transition: opacity .3s; }
.configuration-shell { fill: #d5d6ce; stroke: #eeeee67a; stroke-width: 1; }
.configuration-windows { stroke: #343e3d; stroke-width: 2; stroke-linecap: round; fill: none; }
.configuration-floor { fill: var(--cabin-floor); transition: fill .4s; }
.configuration-aisle { fill: none; stroke: #ffffff26; stroke-dasharray: 3 5; stroke-width: .8; }
.configuration-seat { fill: var(--cabin-leather); stroke: #27272390; stroke-width: 1; opacity: 0; transition: opacity .2s, fill .4s; }
.configuration-seat.is-visible { opacity: 1; }
.aircraft-configurator:not([data-mode=exterior]) .configuration-cabin { opacity: 1; }
.aircraft-configurator:not([data-mode=exterior]) .config-stripe { opacity: 0; }
.configuration-caption { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.configuration-caption h3 { font-family: Sora,sans-serif; font-weight: 400; margin: 0; font-size: 23px; letter-spacing: -.9px; }
.configuration-caption p { font-size: 10px; margin: 7px 0 0; color: #9ea69e; }
.configuration-view-label { font-size: 10px; color: #b4b9af; text-align: right; max-width: 120px; line-height: 1.5; }
.configuration-controls { padding: 8px 0; min-width: 0; }
.configuration-modes { display: flex; border-bottom: 1px solid #62535726; gap: 20px; }
.configuration-modes button { background: none; padding: 10px 0 13px; color: #88777a; font-size: 12px; position: relative; }
.configuration-modes button[aria-pressed=true] { color: #242420; }
.configuration-modes button[aria-pressed=true]::after { content: ''; height: 2px; background: #242420; position: absolute; bottom: -1px; left: 0; right: 0; }
.configuration-step { margin: 27px 0 10px; text-transform: uppercase; font-size: 9px; letter-spacing: .11em; color: #89757b; }
.configuration-options h3 { font-family: Sora,sans-serif; font-weight: 400; font-size: clamp(20px,2vw,29px); line-height: 1.25; letter-spacing: -.055em; margin: 0 0 24px; }
.configuration-choice-title { display: flex; justify-content: space-between; gap: 8px; align-items: center; font-size: 13px; }
[data-choice-price] { color: #7c686e; font-size: 11px; white-space: nowrap; }
.finish-choices { display: flex; gap: 19px; margin: 20px 0 0; padding: 0; border: 0; }
.finish-choice-content { display: flex; flex-direction: column; gap: 10px; align-items: center; }
.finish-chip { display: block; width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg,#ffffff88,transparent 70%),var(--finish-color); box-shadow: inset 0 0 0 1px #20201d16; position: relative; }
.finish-choice input:checked + .finish-choice-content .finish-chip::after { content: ''; position: absolute; inset: -5px; border: 1px solid #5c4b53; border-radius: inherit; }
.finish-choice-name { font-size: 9px; color: #77656c; }
.interior-finishes .finish-chip { border-radius: 12px; background: repeating-linear-gradient(80deg,#ffffff0d 0 1px,transparent 1px 3px),linear-gradient(140deg,#fff3,transparent 70%),var(--finish-color); }
.configuration-option-note { margin: 24px 0 0; color: #857179; font-size: 11px; line-height: 1.6; }
.layout-choices { border: 0; padding: 0; margin: 0; display: grid; gap: 6px; }
.layout-choice-content { display: flex; align-items: center; justify-content: space-between; padding: 11px 13px; background: #ffffff30; border-radius: 10px; gap: 8px; font-size: 12px; }
.layout-choice input:checked + .layout-choice-content { background: #ffffffcf; }
.layout-choice-count { font-size: 10px; color: #796c6e; }
.configuration-layout-note { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.configuration-layout-note .configuration-option-note { margin-top: 13px; }
.configuration-footer { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-top: 25px; }
.configuration-price { display: flex; flex-direction: column; gap: 7px; }
.configuration-price > span { font-size: 10px; color: #75696e; }
.configuration-total { font-family: Sora,sans-serif; font-size: clamp(26px,3.1vw,44px); letter-spacing: -.065em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.configuration-next { text-align: right; }
.configuration-review { display: inline-flex; align-items: center; justify-content: center; gap: 26px; background: #252923; color: #fff; border-radius: 50px; padding: 16px 23px; font-size: 12px; min-height: 48px; transition: background .2s; }
.configuration-review:hover { background: #46453f; }
.configuration-next p { font-size: 9px; line-height: 1.5; color: #75696e; margin: 10px 0 0; }
.configuration-next .icon { width: 18px; height: 18px; }
.aircraft-configurator :is(button,input):focus-visible { outline: 2px solid #806974; outline-offset: 4px; }
.aircraft-configurator input:focus-visible + span { outline: 2px solid #806974; outline-offset: 5px; border-radius: 10px; }
.is-animated .aircraft-configurator:not(.is-ready) { pointer-events: none; }
.configuration-summary { width: min(500px,calc(100% - 28px)); max-height: calc(100svh - 30px); overflow-y: auto; border: 0; border-radius: 28px; padding: 28px; color: #252923; background: #f4efec; box-shadow: 0 30px 100px #171b1c33; }
html:has(.configuration-summary[open]) { overflow: hidden; }
.configuration-summary::backdrop { background: #20221e60; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.configuration-summary header { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.configuration-summary .configuration-eyebrow { margin: 0; }
.configuration-summary-close { display: grid; place-items: center; flex-shrink: 0; width: 40px; height: 40px; background: #e8dedf; border-radius: 50%; }
.configuration-summary h2 { font: 400 40px/1.12 Sora,sans-serif; letter-spacing: -.065em; margin: 24px 0; }
.configuration-breakdown { margin: 0; }
.configuration-breakdown > div { display: flex; justify-content: space-between; gap: 16px; padding: 15px 0; border-bottom: 1px solid #77636d20; font-size: 12px; line-height: 1.5; }
.configuration-breakdown dd { margin: 0; white-space: nowrap; }
.configuration-summary-total { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin: 23px 0; font-size: 11px; }
.summary-total { font: 400 25px Sora,sans-serif; letter-spacing: -.06em; }
#configuration-summary-note { font-size: 11px; line-height: 1.7; color: #7e7076; }
.configuration-summary-return { width: 100%; padding: 15px; margin-top: 10px; background: #252923; color: white; border-radius: 30px; }
.configuration-summary button:focus-visible { outline: 2px solid #806974; outline-offset: 3px; }

@media(min-width:1600px) and (min-height:900px) {
  .configuration-content { padding: 45px 58px 96px; }
  .configuration-header { margin-bottom: 32px; }
  .configuration-workspace { min-height: 420px; gap: 48px; }
  .configuration-controls { padding-top: 20px; }
  .configuration-options h3 { margin-bottom: 34px; }
  .configuration-footer { margin-top: 32px; }
}
@media(max-width:1000px) {
  .configuration-content { padding: 26px 26px 86px; }
  .configuration-header { align-items: flex-start; }
  .aircraft-configurator h2 span { display: block; }
  .configuration-workspace { grid-template-columns: minmax(0,1.3fr) minmax(250px,1fr); gap: 22px; }
  .aircraft-choice-content { padding: 15px 12px; grid-template-columns: 18px 1fr; gap: 5px; }
  .aircraft-choice-name { font-size: 13px; }
  .configuration-caption h3 { font-size: 19px; }
  .configuration-caption p { display: none; }
  .finish-choices { gap: 15px; }
}
@media(max-width:760px) {
  .configuration-content { padding: 22px 18px 82px; }
  .configuration-header { display: block; }
  .configuration-eyebrow { font-size: 8px; margin-bottom: 7px; }
  .aircraft-configurator h2 { font-size: clamp(25px,6.8vw,38px); line-height: 1.15; }
  .aircraft-configurator h2 span { display: none; }
  .configuration-preview { display: block; font-size: 9px; margin-top: 9px; }
  .aircraft-choices { gap: 5px; margin: 16px 0 14px; }
  .aircraft-choice-content { display: flex; flex-direction: column; padding: 10px 8px; border-radius: 13px; gap: 5px; min-height: 82px; }
  .aircraft-choice-number { font-size: 8px; padding: 0; }
  .aircraft-choice-name { font-size: 10px; letter-spacing: -.4px; white-space: nowrap; }
  .aircraft-choice-meta { font-size: 8px; line-height: 1.45; }
  .aircraft-choice input:checked + .aircraft-choice-content::after { position: absolute; right: 9px; top: 12px; width: 5px; height: 5px; border-radius: 50%; margin: 0; }
  .configuration-workspace { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
  .configuration-visual { border-radius: 20px; padding: 16px 18px; height: 198px; flex-shrink: 0; }
  .configuration-visual-heading { font-size: 8px; }
  .configuration-drawing { min-height: 0; overflow: hidden; }
  .configuration-plane { width: 100%; height: 134px; max-height: none; }
  .configuration-caption h3 { font-size: 15px; letter-spacing: -.6px; }
  .configuration-view-label { font-size: 8px; max-width: 105px; }
  .configuration-controls { padding: 0; }
  .configuration-modes { gap: 25px; }
  .configuration-modes button { font-size: 11px; padding: 8px 0 10px; }
  .configuration-options { min-height: 143px; padding-top: 14px; }
  .configuration-step, .configuration-options h3 { display: none; }
  .configuration-choice-title { font-size: 12px; }
  [data-choice-price] { font-size: 10px; }
  .finish-choices { gap: 22px; margin-top: 17px; }
  .finish-chip { width: 33px; height: 33px; }
  .finish-choice-name { font-size: 8px; }
  .finish-choice-content { gap: 8px; }
  .configuration-option-note { margin-top: 14px; font-size: 10px; }
  .layout-choices { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .layout-choice-content { flex-direction: column; align-items: flex-start; padding: 13px 9px; font-size: 10px; gap: 8px; }
  .layout-choice-count { font-size: 9px; }
  .configuration-footer { margin-top: 10px; gap: 14px; align-items: flex-start; }
  .configuration-price { gap: 5px; }
  .configuration-price > span { font-size: 8px; line-height: 1.45; }
  .configuration-total { font-size: 25px; }
  .configuration-added { max-width: 175px; }
  .configuration-review { padding: 12px 14px; min-height: 42px; gap: 8px; font-size: 10px; white-space: nowrap; }
  .configuration-review .icon { width: 14px; height: 14px; }
  .configuration-next { max-width: 145px; }
  .configuration-next p { font-size: 8px; margin-top: 6px; }
}
@media(max-width:359px) {
  .configuration-content { padding-inline: 13px; }
  .aircraft-choice-content { padding-inline: 6px; }
  .aircraft-choice-name { font-size: 9px; }
  .aircraft-choice-meta { font-size: 7px; }
  .configuration-total { font-size: 22px; }
  .configuration-review { padding-inline: 10px; font-size: 9px; }
}
@media(prefers-reduced-motion:reduce) {
  .aircraft-configurator *, .configuration-summary { transition: none !important; }
}
