/* Shared Precision Studio foundation and homepage components. */
.precision-studio {
  --font-heading: 'Montserrat', sans-serif;
  --font-body: 'Sora', sans-serif;
  --brand-pink: #bc3c10;
  --brand-pink-light: #a33009;
  --brand-cyan: #bc3c10;
  --brand-gray: #62645e;
  --studio-paper: #f6f5f0;
  --studio-ink: #242722;
  --studio-line: #d9d9d0;
  background: var(--studio-paper);
  color: var(--studio-ink);
  font-family: var(--font-body);
  color-scheme: light;
}
.precision-studio ::selection { background: #f8c4a9; color: #242722; }
.precision-studio :focus-visible { outline: 3px solid #bc3c10; outline-offset: 5px; }
.precision-studio #mainNav, .precision-studio #mainNav.scrolled { background: rgba(246,245,240,.96); border-bottom: 1px solid var(--studio-line); box-shadow: none; backdrop-filter: blur(16px); padding: 12px 0; }
.precision-studio .navbar-nav .nav-link { color: #42453e !important; font-size: .76rem; padding: 9px 10px !important; }
.precision-studio .navbar-nav .nav-link:hover, .precision-studio .navbar-nav .nav-link.active { color: #bc3c10 !important; }
.precision-studio .hamburger-icon span { background: #242722; }
.precision-studio .navbar-collapse { border-color: var(--studio-line); }
.precision-studio .btn { border-radius: 3px; box-shadow: none; font-size: .8rem; }
.precision-studio .btn-primary-brand { background: #bc3c10; border: 1px solid #bc3c10; color: white; padding: 15px 23px; }
.precision-studio .btn-primary-brand:hover { background: #96300c; border-color: #96300c; transform: translateY(-2px); box-shadow: none; }
.precision-studio .btn-primary-brand::after { display: none; }
.studio-text-link { display: inline-flex; align-items: center; gap: 22px; font-size: .8rem; font-weight: 600; color: #242722; }
.studio-text-link span { color: #bc3c10; font-size: 1.4rem; }
.studio-text-link:hover { color: #bc3c10; }
.studio-hero { padding: 120px 0 52px; }
.studio-kicker, .studio-small, .studio-product-top, .studio-tool-heading>span { font: 500 .65rem/1.4 var(--font-body); letter-spacing: .14em; }
.studio-kicker { display: flex; justify-content: space-between; color: #60635c; padding-bottom: 28px; }
.studio-kicker span:first-child::before { content: ''; display: inline-block; width: 7px; height: 7px; background: #bc3c10; margin-right: 12px; }
.studio-intro { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: end; padding-bottom: 42px; }
.studio-intro h1 { font: 600 clamp(3.5rem,6.6vw,6.3rem)/1.02 var(--font-heading); letter-spacing: -.075em; margin: 0; }
.studio-intro h1 span { color: #bc3c10; }
.studio-intro-copy { padding: 0 0 3px 30px; }
.studio-intro-copy>p { font-size: 1rem; line-height: 1.85; color: #62645e; margin-bottom: 22px; }
.studio-intro .cnc-actions { margin: 0; align-items: center; gap: 24px; }
.studio-product { position: relative; height: clamp(370px,43vw,580px); overflow: hidden; isolation: isolate; background: #181c1d; color: white; }
.studio-machine { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.studio-product::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,0,0,.35),transparent 28%,transparent 55%,rgba(0,0,0,.78)); z-index: 2; pointer-events: none; }
.studio-product-top, .studio-product-bottom { position: absolute; z-index: 3; left: 30px; right: 30px; display: flex; justify-content: space-between; }
.studio-product-top { top: 25px; color: #eee; font-size: .59rem; }
.studio-product-top i { display: inline-block; width: 6px; height: 6px; background: #ff8a4d; border-radius: 50%; margin-right: 8px; }
.studio-product-bottom { bottom: 23px; align-items: end; }
.studio-product-bottom p { font: 500 clamp(1.4rem,2.5vw,2.3rem)/1.15 var(--font-heading); letter-spacing: -.04em; margin: 10px 0 0; }
.studio-small { color: #ddd; font-size: .55rem; }
.studio-concept { font-size: .6rem; color: #deded8; }
.studio-overlay { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
.studio-material { fill: rgba(246,245,240,.17); stroke: #eee8da; stroke-width: 1; }
.studio-outline { fill: none; stroke: #e9e5d7; stroke-dasharray: 5 5; stroke-width: 1.5; }
.studio-workpiece { transform-origin: 510px 350px; transform: rotate(-7deg) translate(-15px,8px); transition: transform 900ms cubic-bezier(.22,.61,.36,1); }
.studio-product[data-stage="1"] .studio-workpiece, .studio-product[data-stage="2"] .studio-workpiece { transform: none; }
.studio-marks { fill: none; stroke: #ff8a4d; stroke-width: 3; opacity: .3; transition: opacity 600ms; }
.studio-product[data-stage="1"] .studio-marks, .studio-product[data-stage="2"] .studio-marks { opacity: 1; }
.studio-trace { fill: transparent; stroke: #ff8a4d; stroke-width: 3; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s ease, fill 1.6s ease; }
.studio-product[data-stage="2"] .studio-trace { stroke-dashoffset: 0; fill: rgba(255,138,77,.24); }
.studio-sweep { position: absolute; z-index: 1; top: 0; bottom: 0; left: 0; width: 25%; background: linear-gradient(90deg,transparent,rgba(255,235,203,.2)); border-right: 1px solid #ffd2ac; transform: translateX(-110%); }
.studio-product[data-stage="0"] .studio-sweep { animation: studio-scan 3s ease-in-out 1; }
@keyframes studio-scan { to { transform: translateX(410%); } }
.studio-sequence { display: grid; grid-template-columns: repeat(3,1fr); }
.studio-sequence button { position: relative; display: grid; grid-template-columns: 25px 1fr; gap: 5px 10px; text-align: left; border: 0; border-bottom: 1px solid var(--studio-line); padding: 23px 20px; color: #6b6e66; background: transparent; transition: background .2s; }
.studio-sequence button+button { border-left: 1px solid var(--studio-line); }
.studio-sequence button[aria-pressed="true"] { background: #eeede5; border-bottom: 3px solid #bc3c10; color: #242722; }
.studio-sequence button>span { font-size: .65rem; padding-top: 5px; color: #bc3c10; }
.studio-sequence strong { font: 600 1.25rem var(--font-heading); letter-spacing: -.04em; }
.studio-sequence small { grid-column: 2; font-size: .7rem; }
.studio-sequence button:hover { background: #e9e8df; }
.studio-sequence-hint { display: flex; justify-content: space-between; gap: 15px; font-size: .6rem; color: #62645e; padding-top: 14px; }
.precision-studio .section-padding { padding: 90px 0; }
.precision-studio .section-tag { border: 0; background: none; border-radius: 0; padding: 0; font-size: .63rem; letter-spacing: .14em; color: #bc3c10; }
.precision-studio .section-title { color: #242722; font-weight: 600; letter-spacing: -.055em; font-size: clamp(2rem,3.6vw,3.35rem); line-height: 1.12; }
.precision-studio .section-subtitle, .precision-studio .cnc-lead { color: #62645e; font-size: .96rem; }
.precision-studio .cnc-applications, .precision-studio .cnc-customize { background: #eeede6; }
.precision-studio .cnc-modules, .precision-studio .contact-section, .precision-studio .location-section { background: var(--studio-paper); }
.precision-studio .cnc-foundation, .precision-studio .cnc-registration { border-color: var(--studio-line); }
.precision-studio .cnc-application-image img, .precision-studio .cnc-digitization-media>img { border-radius: 3px; border-color: var(--studio-line); }
.precision-studio .cnc-application-image::after { background: #f6f5f0; color: #42453e; }
.precision-studio .cnc-application-image figcaption, .precision-studio .cnc-digitization-media figcaption { color: #62645e; }
.precision-studio .cnc-card, .precision-studio .cnc-tool-card { background: #faf9f5; border: 1px solid var(--studio-line); border-radius: 3px; }
.precision-studio .cnc-card:hover, .precision-studio .cnc-tool-card:hover { border-color: #bc3c10; }
.precision-studio .cnc-card p, .precision-studio .cnc-foundation p, .precision-studio .cnc-steps p, .precision-studio .vision-process p, .precision-studio .cnc-tool-card p { color: #62645e; }
.precision-studio .cnc-optional { color: #a83b17; }
.precision-studio .vision-process li { background: transparent; border-color: var(--studio-line); }
.precision-studio .vision-process li::after { background: var(--studio-paper); color: #bc3c10; border-color: var(--studio-line); }
.precision-studio .vision-process i { border-color: #d8d3c6; color: #bc3c10; background: #eeede6; border-radius: 3px; }
.precision-studio .vision-process>li>span { color: #62645e; }
.precision-studio .cnc-demo-link:hover { color: #96300c; }
.precision-studio .cnc-steps li { border-color: #cecec3; }
.studio-applications { margin-bottom: 50px; }
.studio-tabs { display: flex; border-bottom: 1px solid var(--studio-line); }
.studio-tabs button { flex: 1; padding: 19px 12px; font-size: .76rem; text-align: left; color: #62645e; background: transparent; border: 0; border-bottom: 3px solid transparent; }
.studio-tabs button[aria-selected="true"] { color: #bc3c10; border-bottom-color: #bc3c10; }
.studio-tabs button:hover { background: #eeede6; }
.studio-application-panel { display: grid; grid-template-columns: 1fr 1fr; background: #eeede6; min-height: 390px; }
.studio-application-panel>img { width: 100%; height: 390px; object-fit: cover; object-position: center 65%; }
.studio-application-panel>img[data-contain="true"] { object-fit: contain; background: #fff; }
.studio-application-copy { padding: 42px; align-self: center; }
.studio-application-copy h3 { font: 600 clamp(1.6rem,2.7vw,2.5rem)/1.16 var(--font-heading); letter-spacing: -.05em; }
.studio-application-copy p { font-size: .88rem; color: #62645e; margin: 20px 0; }
.studio-application-copy small { display: block; font-size: .6rem; color: #62645e; margin-top: 22px; }
.studio-tool-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; margin-bottom: 20px; }
.studio-tool-heading p { font-size: .85rem; color: #62645e; margin: 0; }
.precision-studio #demos { background: #242722; color: #f6f5f0; border: 0; }
.precision-studio #demos .section-title { color: #f6f5f0; }
.precision-studio #demos .section-tag, .precision-studio #demos .cnc-demo-link { color: #ffab7e; }
.precision-studio #demos .section-subtitle { color: #c1c4bb; }
.precision-studio .cnc-demo-card, .precision-studio .cnc-playlist-item { border-radius: 3px; background: #2c3029; border-color: #474c42; }
.precision-studio .cnc-demo-body p, .precision-studio .cnc-playlist-item { color: #ced1c8; }
.precision-studio .cnc-playlist-item:hover, .precision-studio .cnc-playlist-item[aria-current="true"] { background: #3b3d32; border-color: #ffab7e; color: white; }
.precision-studio .cnc-playlist-item i { color: #ffab7e; }
.precision-studio .cnc-video-preview span { border-radius: 3px; }
html.showcase-open { overflow: hidden; }
.studio-video-dialog { width: min(1200px,calc(100vw - 32px),calc((100dvh - 100px) * 16 / 9)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 0; border-radius: 4px; background: #181c19; color: #f6f5f0; overflow: auto; box-shadow: 0 20px 80px #0008; }
.studio-video-dialog::backdrop { background: #151813f5; }
.studio-video-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; font-size: .75rem; }
.studio-video-toolbar button { border: 1px solid #777b71; border-radius: 3px; padding: 7px 12px; background: transparent; color: #fff; font: inherit; cursor: pointer; }
.studio-video-toolbar button:hover { background: #42453e; }
.studio-video-dialog video { display: block; width: 100%; aspect-ratio: 16/9; background: #000; }
.precision-studio .contact-info-item span, .precision-studio .contact-form-card h5 { color: #242722; }
.precision-studio .contact-info-icon { background: #eeede6; border-color: var(--studio-line); }
.precision-studio .contact-form-card { background: #eeede6; border: 1px solid var(--studio-line); border-radius: 3px; }
.precision-studio .contact-input { background: #faf9f5 !important; color: #242722 !important; border: 1px solid #cccec4 !important; border-radius: 3px !important; }
.precision-studio .contact-input::placeholder { color: #6b6e66 !important; }
.precision-studio .contact-input:focus { border-color: #bc3c10 !important; box-shadow: 0 0 0 3px #bc3c101a !important; }
.precision-studio .contact-input option { background: #faf9f5; color: #242722; }
.precision-studio .contact-form-status.is-info { color: #62645e; }
.precision-studio .contact-form-status.is-success { color: #286738; }
.precision-studio .contact-form-status.is-error { color: #a52b20; }
.precision-studio .location-section { border-top: 1px solid var(--studio-line); }
.precision-studio .main-footer { background: #e9e8df; border-top: 1px solid var(--studio-line); }
.precision-studio .footer-heading, .precision-studio .footer-links a, .precision-studio .footer-contact-mini p, .precision-studio .footer-bottom p, .precision-studio .footer-bottom a { color: #53564e; }
.precision-studio .footer-bottom { border-color: #cecec3; }
.precision-studio .back-to-top { border-radius: 3px; box-shadow: none; }
@media(min-width:1400px) { .precision-studio .container { max-width: 1240px; } }
/* Fit the desktop opening to the available viewport, with a readable minimum
   height so short windows and browser zoom can still scroll naturally. */
@media(min-width:992px) {
  .studio-hero { padding: 100px 0 20px; }
  .studio-hero>.container {
    display: grid;
    grid-template-rows: auto auto minmax(240px,1fr) auto auto;
    height: clamp(560px,calc(100svh - 120px),940px);
  }
  .studio-kicker { padding-bottom: 16px; }
  .studio-intro { grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 32px; padding-bottom: 24px; }
  .studio-intro h1 { font-size: clamp(2.75rem,4.2vw,4.25rem); line-height: 1.04; letter-spacing: -.065em; }
  .studio-intro-copy { padding: 0; }
  .studio-intro-copy>p { font-size: .9rem; line-height: 1.65; margin-bottom: 16px; }
  .studio-intro .cnc-actions { gap: 18px; }
  .studio-product { height: 100%; min-height: 240px; }
  .studio-product-bottom p { font-size: clamp(1.35rem,2vw,1.85rem); }
  .studio-sequence button { padding: 15px 20px; }
  .studio-sequence-hint { margin: 0; padding-top: 10px; }
}
@media(max-width:991px) {
  .precision-studio .navbar-collapse { background: #f6f5f0; }
  .studio-intro { grid-template-columns: 1fr; gap: 25px; }
  .studio-intro-copy { padding: 0; display: flex; justify-content: space-between; gap: 20px; align-items: end; }
  .studio-intro-copy>p { margin: 0; }
  .studio-intro .cnc-actions { flex-direction: column; align-items: flex-start; gap: 10px; }
  .studio-application-copy { padding: 25px; }
}
@media(max-width:575px) {
  .studio-hero { padding-top: 105px; }
  .studio-kicker { font-size: .52rem; padding-bottom: 23px; }
  .studio-kicker span:last-child { display: none; }
  .studio-intro h1 { font-size: clamp(2.85rem,12vw,4rem); }
  .studio-intro-copy { display: block; }
  .studio-intro-copy>p { font-size: .9rem; margin-bottom: 20px; }
  .studio-intro .cnc-actions { flex-direction: row; gap: 15px; align-items: center; }
  .studio-text-link { font-size: .72rem; gap: 8px; }
  .precision-studio .btn-primary-brand { padding: 13px 16px; font-size: .74rem; }
  .studio-product { height: 370px; }
  .studio-product-top, .studio-product-bottom { left: 17px; right: 17px; }
  .studio-product-top span:last-child,   .studio-product-bottom { display: block; }
  .studio-concept { display: block; margin-top: 10px; }
  .studio-sequence button { padding: 16px 9px; grid-template-columns: 1fr; gap: 5px; }
  .studio-sequence strong { font-size: 1.1rem; }
  .studio-sequence small { grid-column: 1; font-size: .58rem; }
  .studio-sequence-hint { display: block; }
  .studio-sequence-hint span { display: block; margin-top: 6px; }
  .precision-studio .section-padding { padding: 60px 0; }
  .studio-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .studio-tabs button { padding: 14px 10px; font-size: .7rem; }
  .studio-application-panel { grid-template-columns: 1fr; }
  .studio-application-panel>img { height: 270px; }
  .studio-tool-heading { display: block; }
  .studio-tool-heading p { margin-top: 8px; }
}
@media(prefers-reduced-motion:reduce) {
  .precision-studio *, .precision-studio *::before, .precision-studio *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
