/* Tesla catalogue: materials schedule and project request, no storefront pricing. */
.tesla-catalog { padding-bottom:70px; --catalog-red:var(--red,#d72d29); }
.tesla-catalog [hidden] { display:none !important; }
.tesla-catalog button,.tesla-catalog input,.tesla-catalog select,.tesla-catalog textarea { font:inherit; }
.tesla-catalog button { cursor:pointer; }
.tesla-catalog button:disabled { cursor:default; opacity:.5; }
.tesla-catalog a:focus-visible,.tesla-catalog button:focus-visible,.tesla-catalog input:focus-visible,.tesla-catalog select:focus-visible,.tesla-catalog textarea:focus-visible { outline:2px solid var(--catalog-red); outline-offset:4px; }
.tesla-catalog .catalog-kicker { margin:0 0 25px; font:11px/1.5 'Courier New',monospace; text-transform:uppercase; letter-spacing:.08em; }
.catalog-opening { display:grid; grid-template-columns:1.4fr 1fr; gap:70px; align-items:end; padding-block:55px 64px; }
.catalog-opening h1 { font-size:clamp(48px,6vw,86px); line-height:.99; font-weight:500; letter-spacing:-.06em; }
.catalog-opening h1 span { color:var(--catalog-red); }
.catalog-opening-aside { max-width:430px; padding-bottom:5px; }
.catalog-opening-aside > p { font-size:16px; color:var(--muted); line-height:1.7; }
.catalog-opening-aside > .catalog-note { margin-top:20px; font-size:13px; }
.catalog-opening-aside > a { display:block; margin-top:27px; padding-top:20px; border-top:1px solid var(--rule); text-decoration:none; font-size:12px; }
.catalog-opening-aside > a > span { color:var(--catalog-red); padding-left:25px; }
.catalog-opening-aside > a > strong { display:block; margin-top:7px; font-size:22px; font-weight:500; letter-spacing:-.025em; }
.tesla-catalog .catalog-note { color:var(--muted); font-size:12px; line-height:1.65; }
.catalog-unavailable { margin-block:24px; padding:24px; border:1px solid var(--rule); }
.catalog-toolbar { display:flex; align-items:end; justify-content:space-between; gap:30px; padding-block:25px 28px; border-top:1px solid var(--ink); }
.catalog-search { flex:1; max-width:600px; }
.catalog-search > span { display:block; margin-bottom:10px; font:11px 'Courier New',monospace; text-transform:uppercase; letter-spacing:.05em; }
.catalog-search input { width:100%; min-height:52px; border:0; border-bottom:1px solid var(--ink); padding:12px 0; background:transparent; color:var(--ink); font-size:18px; border-radius:0; }
.catalog-basket-button { display:flex; align-items:center; gap:22px; min-height:52px; padding:13px 21px; background:var(--ink); color:#fff; border:1px solid var(--ink); font-size:14px; }
.catalog-basket-button [data-basket-count] { font:13px 'Courier New',monospace; }
.catalog-basket-button > span:last-child { color:#ff7771; font-size:24px; }
.catalog-workspace { display:grid; grid-template-columns:230px minmax(0,1fr); gap:58px; align-items:start; padding-top:28px; }
.catalog-navigation { position:sticky; top:25px; max-height:calc(100svh - 50px); overflow-y:auto; padding-right:8px; }
.catalog-category-list { display:flex; flex-direction:column; }
.catalog-category-list button { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:11px 0; border:0; border-bottom:1px solid var(--rule); background:transparent; color:var(--muted); text-align:left; font-size:13px; line-height:1.5; }
.catalog-category-list button > span { color:var(--muted); font:10px 'Courier New',monospace; }
.catalog-category-list button[aria-pressed='true'] { color:var(--catalog-red); border-bottom-color:var(--catalog-red); }
.catalog-category-list button:hover { color:var(--ink); }
.catalog-mobile-category { display:none; }
.catalog-services-jump { display:block; margin-top:23px; padding-block:9px; font-size:12px; text-decoration:none; }
.catalog-results { min-width:0; }
.catalog-result-count { margin:0 0 24px; color:var(--muted); font:11px/1.5 'Courier New',monospace; }
.catalog-category + .catalog-category { margin-top:42px; }
.catalog-category h2 { margin-bottom:19px; font-size:28px; line-height:1.15; font-weight:500; letter-spacing:-.035em; }
.catalog-product { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:center; padding-block:19px; border-top:1px solid var(--rule); }
.catalog-product:last-child { border-bottom:1px solid var(--rule); }
.catalog-product-name { min-width:0; }
.catalog-product h3 { font-size:17px; line-height:1.4; font-weight:500; letter-spacing:-.02em; overflow-wrap:anywhere; }
.catalog-included { display:block; margin-top:6px; color:var(--catalog-red); font:10px 'Courier New',monospace; }
.catalog-product-controls { display:grid; grid-template-columns:88px 68px 98px; gap:10px; align-items:end; }
.catalog-product-controls > label { color:var(--muted); font-size:10px; line-height:1.5; }
.catalog-product-controls input,.catalog-product-controls select { display:block; width:100%; min-width:0; min-height:44px; margin-top:5px; padding:9px 8px; border:1px solid #b1b0ab; border-radius:0; color:var(--ink); background:transparent; font-size:15px; }
.catalog-product-controls .catalog-add { display:flex; align-items:center; justify-content:space-between; gap:7px; min-height:44px; padding:9px 10px; border:1px solid var(--ink); background:transparent; font-size:12px; }
.catalog-add > span { color:var(--catalog-red); font-size:19px; }
.catalog-add:hover { background:var(--ink); color:#fff; }
.catalog-product.is-selected { border-top-color:#a8a19b; }
.catalog-empty { padding:32px 0; color:var(--muted); }
.catalog-services { display:grid; grid-template-columns:1fr 1.25fr; gap:75px; margin-top:75px; padding-block:50px; border-top:1px solid var(--ink); }
.catalog-services h2 { font-size:clamp(32px,3.4vw,48px); font-weight:500; line-height:1.06; }
.catalog-services > div > p:last-child { max-width:390px; margin-top:25px; color:var(--muted); font-size:14px; }
.catalog-service-options label { display:flex; align-items:center; gap:16px; min-height:61px; padding:15px 0; border-bottom:1px solid var(--rule); cursor:pointer; font-size:15px; line-height:1.4; }
.catalog-service-options label:first-child { border-top:1px solid var(--rule); }
.catalog-service-options input { flex:0 0 19px; width:19px; height:19px; margin:0; accent-color:var(--catalog-red); }
.catalog-service-options label > span:last-child { margin-left:auto; color:var(--catalog-red); }
.catalog-request-bar { position:sticky; bottom:12px; z-index:25; display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:15px; padding:17px 24px; color:#fff; background:var(--ink); box-shadow:0 6px 22px #0002; }
.catalog-request-bar > p { font-size:15px; line-height:1.5; }
.catalog-request-bar small { display:block; color:#bbb9b5; font-size:11px; }
.catalog-request-bar button { display:flex; align-items:center; justify-content:space-between; gap:30px; min-height:47px; padding:10px 16px; border:0; background:var(--paper); color:var(--ink); font-size:13px; }
.catalog-request-bar button > span { color:var(--catalog-red); font-size:22px; }
.catalog-announcement,.catalog-trap { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.catalog-dialog { width:min(1120px,calc(100% - 48px)); max-height:calc(100svh - 48px); margin:auto; padding:0; border:1px solid var(--ink); border-radius:0; background:var(--paper); color:var(--ink); overflow:auto; overscroll-behavior:contain; }
.catalog-dialog::backdrop { background:rgba(17,19,21,.72); }
.catalog-dialog-head { position:sticky; z-index:2; top:0; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:28px 32px; border-bottom:1px solid var(--ink); background:var(--paper); }
.catalog-dialog-head .catalog-kicker { margin-bottom:12px; }
.catalog-dialog-head h2 { font-size:38px; font-weight:500; line-height:1.05; }
.catalog-close { flex-shrink:0; width:46px; height:46px; border:1px solid var(--rule); background:transparent; color:var(--ink); font-size:27px !important; }
.catalog-dialog-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:40px; padding:30px 32px 36px; }
.catalog-order-summary h3,.catalog-contact-fields legend { margin:0 0 22px; padding:0; font-size:22px; font-weight:500; line-height:1.3; letter-spacing:-.025em; }
.catalog-order-summary > .catalog-note { margin-top:25px; }
.catalog-summary-empty { padding-block:20px; color:var(--muted); font-size:14px; }
.catalog-summary-item { padding-block:17px; border-top:1px solid var(--rule); }
.catalog-summary-item h4 { margin:0 0 14px; font-size:15px; line-height:1.4; font-weight:500; overflow-wrap:anywhere; }
.catalog-summary-controls { display:flex; align-items:center; gap:9px; }
.catalog-summary-controls input,.catalog-summary-controls select { width:86px; min-width:0; min-height:44px; padding:8px; border:1px solid #b1b0ab; border-radius:0; background:transparent; font-size:15px; }
.catalog-summary-controls select { width:70px; }
.catalog-remove { margin-left:auto; min-height:44px; padding:8px 2px; border:0; border-bottom:1px solid var(--rule); background:transparent; color:var(--muted); font-size:11px !important; }
.catalog-remove:hover { color:var(--catalog-red); }
.catalog-summary-service { display:flex; align-items:center; gap:16px; }
.catalog-summary-service h4 { margin:0; }
.catalog-order-form { min-width:0; }
.catalog-contact-fields { min-width:0; margin:0; padding:0; border:0; }
.catalog-contact-fields > .catalog-note { margin:-8px 0 22px; }
.catalog-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; }
.catalog-form-grid > label { min-width:0; color:var(--ink); font-size:12px; line-height:1.5; }
.catalog-form-grid input:not([type='checkbox']),.catalog-form-grid textarea { display:block; width:100%; min-width:0; margin-top:8px; padding:12px; border:1px solid #999894; border-radius:0; color:var(--ink); background:#faf9f6; font-size:16px; line-height:1.5; }
.catalog-form-grid textarea { resize:vertical; min-height:120px; }
.catalog-form-grid input:not([type='checkbox']) { min-height:49px; }
.catalog-form-grid .catalog-field-wide { grid-column:1/-1; }
.catalog-form-grid #catalog-contact-note { margin-top:-9px; }
.catalog-form-grid .catalog-consent { display:flex; align-items:flex-start; gap:11px; font-size:12px; line-height:1.65; }
.catalog-consent input { flex:0 0 19px; width:19px; height:19px; margin:2px 0 0; accent-color:var(--ink); }
.catalog-submit { display:flex; align-items:center; justify-content:space-between; gap:22px; width:100%; min-height:55px; padding:14px 18px; margin-top:24px; border:0; color:#fff; background:var(--catalog-red); font-size:14px !important; text-align:left; }
.catalog-submit:hover:not(:disabled) { background:#b62220; }
.catalog-submit > span { font-size:22px; }
.catalog-new-request { width:100%; min-height:50px; margin-top:16px; padding:12px 18px; border:1px solid var(--ink); background:transparent; font-size:14px !important; text-align:left; }
.catalog-form-status { padding:18px; margin-bottom:25px; border:1px solid var(--rule); background:#fff; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.catalog-form-status.is-error { border-color:#af5148; background:#fff3ef; color:#7c251d; }
.catalog-form-status.is-success { border-color:#738e72; background:#f0f6ed; color:#264925; }
.catalog-fallback { margin-top:24px; color:var(--muted); font-size:12px; line-height:1.8; }
.catalog-fallback a { display:inline-block; padding-block:4px; }
@media(max-width:1100px){
  .catalog-opening { gap:45px; }
  .catalog-workspace { grid-template-columns:190px minmax(0,1fr); gap:30px; }
  .catalog-product { grid-template-columns:1fr; gap:15px; }
  .catalog-product-controls { justify-content:end; }
  .catalog-category h2 { font-size:26px; }
  .catalog-services { gap:40px; }
  .catalog-dialog-body { gap:25px; padding:26px; }
}
@media(max-width:779px){
  .catalog-opening { grid-template-columns:1fr 1fr; gap:28px; padding-block:38px 42px; }
  .catalog-opening h1 { font-size:50px; }
  .catalog-opening-aside > p { font-size:14px; }
  .catalog-workspace { grid-template-columns:1fr; gap:24px; padding-top:10px; }
  .catalog-navigation { position:static; max-height:none; overflow:visible; padding:0; }
  .catalog-navigation > .catalog-kicker,.catalog-category-list { display:none; }
  .catalog-mobile-category { display:block; color:var(--muted); font-size:12px; }
  .catalog-mobile-category select { width:100%; min-height:48px; margin-top:8px; padding:10px 12px; border:1px solid #999894; border-radius:0; background:transparent; color:var(--ink); font-size:16px; }
  .catalog-services-jump { margin-top:9px; }
  .catalog-product { grid-template-columns:minmax(0,1fr) auto; }
  .catalog-services { grid-template-columns:1fr; gap:28px; margin-top:48px; }
  .catalog-services > div > p:last-child { max-width:none; }
  .catalog-dialog-body { grid-template-columns:1fr; gap:35px; }
  .catalog-order-summary { padding-bottom:27px; border-bottom:1px solid var(--ink); }
  .catalog-summary-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:center; }
  .catalog-summary-item h4 { margin:0; }
}
@media(max-width:599px){
  .tesla-catalog { padding-bottom:36px; }
  .catalog-opening { grid-template-columns:1fr; gap:28px; }
  .catalog-opening h1 { font-size:clamp(48px,13vw,66px); }
  .catalog-opening-aside { max-width:none; }
  .catalog-opening-aside > a { margin-top:20px; }
  .catalog-toolbar { gap:16px; align-items:stretch; flex-direction:column; padding-block:20px; }
  .catalog-search input { font-size:17px; }
  .catalog-basket-button { align-self:flex-start; min-height:45px; padding:10px 15px; gap:18px; }
  .catalog-category h2 { font-size:25px; }
  .catalog-product { grid-template-columns:1fr; gap:15px; padding-block:20px; }
  .catalog-product h3 { font-size:19px; }
  .catalog-product-controls { grid-template-columns:minmax(75px,1fr) 74px minmax(100px,1.1fr); }
  .catalog-product-controls input,.catalog-product-controls select { font-size:16px; }
  .catalog-product-controls .catalog-add { font-size:13px; }
  .catalog-services { padding-block:35px; }
  .catalog-services h2 { font-size:35px; }
  .catalog-service-options label { font-size:14px; }
  .catalog-request-bar { gap:15px; bottom:8px; padding:14px; }
  .catalog-request-bar > p { font-size:12px; }
  .catalog-request-bar small { display:none; }
  .catalog-request-bar button { min-height:47px; padding:9px 12px; gap:15px; font-size:12px; }
  .catalog-dialog { width:calc(100% - 16px); max-height:calc(100svh - 16px); }
  .catalog-dialog-head { padding:20px 17px; gap:15px; align-items:flex-start; }
  .catalog-dialog-head h2 { font-size:29px; }
  .catalog-dialog-head .catalog-kicker { font-size:9px; margin-bottom:12px; }
  .catalog-close { width:42px; height:42px; }
  .catalog-dialog-body { padding:22px 17px; }
  .catalog-summary-item { grid-template-columns:1fr; gap:13px; }
  .catalog-summary-controls { gap:10px; }
  .catalog-summary-controls input { width:100px; }
  .catalog-summary-service { grid-template-columns:minmax(0,1fr) auto; }
  .catalog-form-grid { grid-template-columns:1fr; gap:19px; }
  .catalog-form-grid input:not([type='checkbox']) { min-height:50px; }
  .catalog-form-grid .catalog-consent { font-size:12px; }
}
@media(prefers-reduced-motion:reduce){.tesla-catalog * { scroll-behavior:auto; }}
