@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@700&display=swap");
:root { --brand: #c80817; --brand-dark: #9c0712; --ink: #20242b; --muted: #565c64; --paper: #fff; --soft: #f6f6f7; --width: 1320px; --shadow: 0 6px 24px rgba(18,24,34,.10); }
    *,*::before,*::after {box-sizing:border-box}
    html {scroll-behavior:smooth; scroll-padding-top:110px}
    body {margin:0; background:#fff; color:var(--ink); font-family:Arial,Helvetica,sans-serif; line-height:1.48; -webkit-font-smoothing:antialiased}
    body.lock-scroll{overflow:hidden}
    a {color:inherit; text-decoration:none}
    button,input,select,textarea {font:inherit}
    button {cursor:pointer}
    img {display:block;max-width:100%}
    .container {width:min(var(--width),calc(100% - 64px));margin-inline:auto}
    .icon {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
    .sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    :focus-visible {outline:3px solid #ef8a91;outline-offset:3px}
    /* Header */
    .site-header {position:sticky;top:0;background:rgba(255,255,255,.98);height:96px;z-index:40;box-shadow:0 2px 8px rgba(20,20,20,.035);border-bottom:1px solid #ededed}
    .header-inner {height:100%;display:flex;align-items:center;justify-content:space-between;gap:22px}
    .brand-lockup {display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}
    .brand {width:auto;flex:none;display:flex;align-items:center}
    .brand img {width:200px;height:auto}
    .brand-sign {position:relative;margin:0;flex:0 1 auto;min-width:0;padding:2px 8px 4px 8px;color:#c80817;font-family:"Caveat","Segoe Print",cursive;font-size:42px;font-weight:700;line-height:1;white-space:nowrap;letter-spacing:.2px}
    .brand-sign-ink {display:inline-block;clip-path:inset(-20% 100% -30% 0);animation:sign-write 2.2s cubic-bezier(.33,.02,.2,1) .15s forwards}
    .brand-sign-line {position:absolute;left:2px;right:8px;bottom:-2px;width:auto;height:10px;overflow:visible;pointer-events:none}
    .brand-sign-line path {fill:none;stroke:#c80817;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:sign-line .8s ease 1.8s forwards}
    .brand-nib {position:absolute;top:58%;left:0;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#9c0712;opacity:0;pointer-events:none;animation:sign-nib 2.2s cubic-bezier(.33,.02,.2,1) .15s forwards}
    @keyframes sign-write {to {clip-path:inset(-20% 0 -30% 0)}}
    @keyframes sign-line {to {stroke-dashoffset:0}}
    @keyframes sign-nib {0% {opacity:1;left:0} 88% {opacity:1} 100% {opacity:0;left:calc(100% - 10px)}}
    .header-rule {height:38px;width:1px;background:#c5c8cd;margin-left:auto}
    .nav {display:flex;align-items:center;gap:30px;height:100%;white-space:nowrap}
    .nav a {font-size:14px;font-weight:700;transition:color .2s;position:relative}
    .nav a:hover,.nav a.active {color:var(--brand)}
    .nav a.active::after {content:"";position:absolute;bottom:-12px;left:0;right:0;height:2px;background:var(--brand)}
    .nav-cta,.btn-primary {border:0;display:inline-flex;align-items:center;justify-content:center;gap:12px;color:#fff;background:linear-gradient(145deg,#dd101e,var(--brand-dark));font-weight:700;border-radius:7px;box-shadow:0 4px 10px rgba(187,0,16,.12);transition:transform .2s,box-shadow .2s}
    .nav-cta:hover,.btn-primary:hover {transform:translateY(-2px);box-shadow:0 8px 20px rgba(187,0,16,.25)}
    .nav-cta {padding:10px 18px;font-size:14px;white-space:nowrap}
    .nav-cta .icon {width:18px;height:18px}
    .menu-toggle {display:none;align-items:center;justify-content:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:var(--brand);width:44px;height:44px}
    /* Hero */
    .hero {height:clamp(392px,35vw,520px);position:relative;isolation:isolate;overflow:hidden;color:white;background-color:#202124}
    .hero-bg {position:absolute;inset:0;background-image:url('assets/hero.webp');background-position:76% 53%;background-size:cover;z-index:-2;transform:scale(1.02)}
    .hero::before {content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(16,19,23,.95) 0%,rgba(19,21,24,.81) 28%,rgba(20,20,20,.47) 46%,rgba(0,0,0,.03) 74%,rgba(0,0,0,.05) 100%)}
    .hero .container {height:100%;display:flex;align-items:center}
    .hero-content {max-width:680px;padding-bottom:8px}
    .red-bar {width:59px;height:4px;background:#ec1020;border-radius:6px;display:block;margin-bottom:20px}
    .hero h1 {font-weight:400;line-height:1.05;font-size:clamp(37px,3.66vw,54px);letter-spacing:-.7px;margin:0 0 20px}
    .hero h1 strong {font-weight:800}
    .hero p {font-size:clamp(17px,1.49vw,20px);line-height:1.38;margin:0 0 25px;max-width:440px;color:#fbfbfb}
    .hero-actions {display:flex;align-items:center;gap:15px;flex-wrap:wrap}
    .hero-actions a {min-height:45px;padding:0 24px;border-radius:10px;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:15px}
    .hero-actions .btn-primary {border:1px solid #ea2733}
    .btn-outline {color:#fff;border:2px solid #eee;box-shadow:0 3px 8px #0002;transition:background .2s}
    .btn-outline:hover {background:rgba(255,255,255,.13)}
    .hero-actions .icon {width:21px;height:21px}
    /* Services */
    .services {padding-top:22px}
    .services-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
    .service-card {background:linear-gradient(150deg,#fff,#fbfbfb);min-height:102px;border-radius:15px;box-shadow:var(--shadow);display:flex;align-items:center;gap:17px;padding:17px 19px;border:1px solid #f0f0f0;transition:transform .25s}
    .service-card:hover {transform:translateY(-4px)}
    .service-card .icon {color:#cc0717;width:55px;height:55px;stroke-width:1.5}
    .service-card h3 {font-size:15px;margin:0 0 3px;line-height:1.25;color:#1f2227;font-weight:800}
    .service-card p {font-size:12.5px;line-height:1.45;margin:0;color:#333a42}
    /* About */
    .about {padding-top:45px}
    .about-inner {display:grid;grid-template-columns:1.02fr 1fr;gap:40px;align-items:center}
    .about-image-wrap {padding-left:23px;padding-top:16px;position:relative;height:300px}
    .about-image-wrap::before {content:"";position:absolute;top:0;left:0;background:linear-gradient(135deg,#9b0712,#e61523);width:154px;height:214px;border-radius:15px 15px 15px 15px}
    .about-image {position:relative;width:100%;height:100%;object-fit:cover;border-radius:14px}
    .eyebrow {display:flex;align-items:center;gap:13px;font-size:16px;font-weight:800;color:#cf0716;margin:0 0 10px}
    .eyebrow::before {content:"";height:3px;width:32px;background:#d80c1c;border-radius:3px}
    .about h2 {font-size:clamp(29px,2.65vw,38px);line-height:1.09;letter-spacing:-.5px;margin:0 0 10px;color:#272b31}
    .about-copy {margin:0 0 20px;color:#353a41;font-size:14px;line-height:1.48;max-width:540px}
    .benefits {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
    .benefit {border-radius:17px;background:#f5f5f5;min-height:99px;text-align:center;padding:13px 7px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center}
    .benefit .icon {color:#cf0617;width:37px;height:37px;margin-bottom:4px;stroke-width:1.6}
    .benefit h3 {font-size:13.5px;line-height:1.22;margin:0;color:#111;font-weight:800}
    /* Product Gallery */
    .products {padding-top:32px}
    .section-heading {display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}
    .section-heading h2 {display:flex;align-items:center;gap:14px;margin:0;font-size:23px;line-height:1.2;letter-spacing:-.5px;color:#171b20}
    .section-heading h2::before {content:"";height:3px;width:42px;border-radius:2px;background:#d00617;flex:none}
    .all-gallery {display:inline-flex;align-items:center;gap:8px;color:#bd0713;font-size:13px;font-weight:800;white-space:nowrap}
    .all-gallery:hover {text-decoration:underline}
    .all-gallery .icon {width:18px;height:18px}
    .gallery-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
    .gallery-card {border:0;padding:0;border-radius:11px;overflow:hidden;background:#ddd;position:relative;aspect-ratio:1.63;box-shadow:0 1px 3px #0001}
    .gallery-card img {width:100%;height:100%;object-fit:cover;transition:transform .38s}
    .gallery-card:hover img {transform:scale(1.065)}
    .gallery-card::after {content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 70%,rgba(0,0,0,.2));opacity:0;transition:opacity .2s}
    .gallery-card:hover::after {opacity:1}
    .gallery-card .expand-icon {position:absolute;right:12px;top:12px;border-radius:50%;background:#ffffffed;padding:6px;z-index:2;color:var(--brand);opacity:0;transform:translateY(3px);transition:opacity .2s,transform .2s}
    .gallery-card:hover .expand-icon {opacity:1;transform:translateY(0)}
    /* Callout */
    .contact-cta {margin-top:30px;margin-bottom:20px;background:linear-gradient(115deg,#af0613,#d51020 55%,#a6000f);border-radius:14px;min-height:90px;color:#fff;display:flex;align-items:center;gap:22px;padding:16px 33px;overflow:hidden;position:relative;box-shadow:0 6px 13px rgba(200,10,20,.09)}
    .contact-cta::after {content:"";position:absolute;right:100px;top:-60px;width:185px;height:225px;background:rgba(255,255,255,.045);transform:skewX(-38deg);pointer-events:none}
    .cta-icon {width:52px;height:52px;background:#fff;color:#bb0714;border-radius:11px;display:grid;place-items:center;flex:none;z-index:1}
    .cta-icon .icon {width:31px;height:31px;fill:#bb0714;stroke-width:1.5}
    .cta-copy {border-left:1px solid #fff8;padding-left:20px;flex:1;z-index:1}
    .cta-copy h2 {font-size:clamp(21px,2vw,26px);line-height:1.15;margin:0 0 6px;color:white}
    .cta-copy p {margin:0;font-size:14px;line-height:1.35}
    .cta-button {background:#fff;color:#a90814;border:0;padding:13px 23px;border-radius:10px;font-weight:800;display:inline-flex;align-items:center;gap:13px;white-space:nowrap;z-index:1;transition:transform .2s}
    .cta-button:hover {transform:translateY(-2px)}
    .cta-button .icon {width:20px;height:20px}
    /* Footer */
    .footer {background:#252a30;color:#fff;padding:22px 0 15px}
    .footer-top {display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.3)}
    .footer-brand {display:inline-flex;align-items:center;gap:20px}
    .footer-logo {font-weight:900;white-space:nowrap;font-size:25px;letter-spacing:-1.2px;color:white;line-height:1}
    .footer-logo span {background:white;color:#b10714;border-radius:3px;padding:2px 4px;margin-left:1px}
    .footer-desc {font-size:11px;line-height:1.4;padding-left:20px;border-left:1px solid #aaa;max-width:215px;color:#fafafa}
    .footer-detail {display:flex;align-items:center;gap:10px;padding-left:20px;border-left:1px solid #81858a;font-size:13px;line-height:1.35;white-space:nowrap}
    .footer-detail .icon {width:28px;height:28px;stroke-width:1.8}
    .footer-detail small {display:block;color:#f3f3f3;font-size:11px}
    .footer-bottom {padding-top:11px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;color:#ddd}
    .footer-bottom p {margin:0}
    .footer-socials {display:flex;align-items:center;gap:14px}
    .footer-socials .icon {width:22px;height:22px}
    /* Overlay dialogs */
    .overlay {position:fixed;inset:0;background:rgba(9,12,18,.74);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
    .overlay.open {display:flex}
    .dialog {background:white;border-radius:18px;max-width:580px;width:100%;box-shadow:0 24px 60px #0004;position:relative;padding:27px;max-height:min(92vh,900px);overflow:auto}
    .dialog-close {position:absolute;right:15px;top:14px;background:#f2f2f3;border:0;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;color:#272b30}
    .dialog-close .icon {height:19px;width:19px}
    .dialog h2 {font-size:26px;line-height:1.15;margin:0 0 6px;padding-right:35px}
    .dialog .subtitle {font-size:14px;color:#64666c;margin:0 0 18px}
    .quote-form {display:grid;grid-template-columns:1fr 1fr;gap:14px}
    .field {display:flex;flex-direction:column;gap:6px}
    .field.wide {grid-column:1/-1}
    .field label {font-weight:700;font-size:13px}
    .field input,.field select,.field textarea {width:100%;border:1px solid #d7d9dd;background:#fff;border-radius:9px;padding:11px 12px;outline:none;color:#222}
    .field input:focus,.field select:focus,.field textarea:focus {border-color:#b80b18;box-shadow:0 0 0 3px #d80d1b1c}
    .field textarea {min-height:85px;resize:vertical}
    .submit-quote {grid-column:1/-1;padding:13px;border:0;border-radius:9px;background:var(--brand);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px}
    .modal-note {font-size:12px;color:#65686e;margin:12px 0 0}
    .feedback {display:none;font-size:13px;padding:11px 12px;margin:10px 0 0;background:#eff8f0;color:#27642e;border-radius:8px}
    .feedback.visible {display:block}
    .gallery-overlay .gallery-dialog {display:flex;flex-direction:column;gap:10px;position:relative;max-width:min(980px,95vw);width:100%;color:#fff}
    .gallery-overlay img {max-height:75vh;width:100%;object-fit:contain;border-radius:8px}
    .gallery-caption {display:flex;justify-content:center;gap:20px;align-items:center;font-size:15px;text-align:center;font-weight:bold}
    .gallery-nav {position:absolute;top:45%;border:0;border-radius:50%;height:42px;width:42px;color:#222;background:#fff;display:grid;place-items:center;box-shadow:0 4px 15px #0002}
    .gallery-nav.prev {left:10px}.gallery-nav.next {right:10px}
    .gallery-dialog .dialog-close {right:-9px;top:-44px}
    /* Responsive */
    @media (max-width:1220px) {
      .container {width:calc(100% - 54px)}
      .brand {width:auto}
      .brand img {width:180px}
      .brand-sign {font-size:38px}
      .header-inner {gap:18px}
      .nav {gap:24px}
      .footer-detail {padding-left:13px;gap:7px}
      .footer-top {gap:12px}
      .footer-desc {max-width:205px}
    }
    @media (max-width:1060px) {
      .header-rule {display:none}
      .nav {gap:16px}
      .nav a {font-size:13px}
      .brand {width:auto}
      .brand img {width:164px}
      .brand-sign {font-size:34px}
      .service-card {gap:10px;padding:14px 11px}
      .service-card .icon {width:46px;height:46px}
      .about-inner {gap:28px}
      .footer-top {flex-wrap:wrap;justify-content:flex-start;row-gap:20px}
      .footer-brand {margin-right:auto}
    }
    @media (max-width:860px) {
      .site-header {height:auto;min-height:78px}
      .header-inner {gap:12px;height:auto;padding:8px 0}
      .brand {width:auto}
      .brand img {width:150px}
      .brand-sign {font-size:36px}
      .nav {display:none;position:absolute;left:0;right:0;top:100%;height:auto;padding:18px 24px 22px;background:#fff;box-shadow:0 12px 24px #0002;flex-direction:column;align-items:stretch;gap:0}
      .nav.open {display:flex}
      .nav a {font-size:16px;padding:13px 7px;border-bottom:1px solid #eee}
      .nav a.active::after {display:none}
      .nav-cta {margin-left:auto}
      .menu-toggle {display:flex}
      .hero {height:455px}
      .services-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
      .service-card {min-height:95px;padding:16px}
      .about-inner {grid-template-columns:1fr;gap:28px}
      .about-image-wrap {height:350px}
      .about-copy {max-width:unset}
      .products {padding-top:45px}
      .footer-top {gap:20px}
      .footer-brand {flex-basis:100%}
      .footer-detail {min-width:22%;}
    }
    @media (max-width:600px) {
      .container {width:calc(100% - 34px)}
      .brand {width:auto}
      .brand img {width:124px}
      .header-inner {display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"logo cta menu" "sign sign sign";align-items:center;column-gap:8px;row-gap:0}
      .header-rule {display:none}
      .brand-lockup {display:contents}
      .brand {grid-area:logo}
      .brand-sign {grid-area:sign;font-size:34px;padding:0 0 6px;justify-self:start}
      .nav-cta {grid-area:cta;margin-left:0}
      .menu-toggle {grid-area:menu}
      .nav-cta {font-size:0;padding:11px;min-width:43px;height:43px}
      .nav-cta .icon {width:22px;height:22px}
      .hero {height:520px}
      .hero-bg {background-position:64% 50%}
      .hero::before {background:linear-gradient(90deg,rgba(13,16,20,.91),rgba(13,16,20,.58)),linear-gradient(0deg,rgba(0,0,0,.52),transparent 65%)}
      .hero-content {padding-bottom:0;max-width:100%}
      .hero h1 {font-size:clamp(34px,9vw,46px);line-height:1.1;margin-bottom:16px}
      .hero .desktop-break {display:none}
      .hero p {font-size:17px;margin-bottom:25px}
      .hero-actions a {padding:0 17px;font-size:14px;gap:8px;min-height:46px}
      .hero-actions {gap:10px}
      .services {padding-top:14px}
      .services-grid {gap:10px}
      .service-card {flex-direction:column;align-items:flex-start;gap:7px;min-height:166px;padding:15px}
      .service-card .icon {width:39px;height:39px}
      .service-card h3 {font-size:14px}
      .service-card p {font-size:12px}
      .about {padding-top:40px}
      .about-image-wrap {padding:15px 0 0 16px;height:265px}
      .about-image-wrap::before {width:110px;height:165px}
      .about h2 {font-size:29px}
      .eyebrow {font-size:14px}
      .benefits {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
      .benefit {min-height:95px}
      .products {padding-top:38px}
      .section-heading {align-items:flex-start}
      .section-heading h2 {font-size:20px;gap:8px}
      .section-heading h2::before {width:22px}
      .all-gallery {font-size:11px;white-space:normal;max-width:120px;text-align:right;justify-content:flex-end}
      .gallery-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
      .gallery-card {aspect-ratio:1.35}
      .contact-cta {padding:19px;gap:12px;flex-wrap:wrap;margin-top:27px}
      .cta-icon {width:44px;height:44px}
      .cta-icon .icon {height:24px;width:24px}
      .cta-copy {padding-left:12px;flex:1 1 calc(100% - 60px)}
      .cta-copy h2 {font-size:19px}
      .cta-copy p {font-size:12px}
      .cta-button {width:100%;justify-content:center;margin-top:9px}
      .footer {padding-top:27px}
      .footer-brand {flex-wrap:wrap;gap:15px}
      .footer-logo {font-size:27px}
      .footer-desc {max-width:none}
      .footer-detail {flex:1 1 42%;padding-left:0;border:0;font-size:13px;min-width:0}
      .footer-bottom {flex-wrap:wrap;justify-content:center;text-align:center;gap:10px}
      .quote-form {grid-template-columns:1fr}
      .field {grid-column:1/-1}
      .dialog {padding:25px 18px 20px}
      .gallery-nav {width:36px;height:36px}
    }
    @media (prefers-reduced-motion:reduce){
      html{scroll-behavior:auto}
      *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
      .brand-sign-ink{clip-path:none;animation:none}
      .brand-nib{display:none}
      .brand-sign-line path{stroke-dashoffset:0;animation:none}
    }

.float-call,.float-wa {position:fixed;z-index:55;text-decoration:none}
.float-call {left:16px;bottom:22px;display:flex;align-items:center;gap:8px}
.float-wa {right:16px;bottom:18px}
.float-btn {width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:var(--glyph,#fff);background:var(--face,#c80817);box-shadow:0 8px 22px rgba(16,20,28,.22);position:relative}
.float-btn svg {width:30px;height:30px;display:block}
.float-call-label {background:#fff;color:#1d2128;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:800;box-shadow:0 6px 16px rgba(16,20,28,.12)}
.float-wa .float-btn::before,.float-wa .float-btn::after {content:"";position:absolute;inset:0;border-radius:50%;background:var(--face,#25d366);z-index:-1;animation:wa-balloon 2.2s ease-out infinite}
.float-wa .float-btn::after {animation-delay:.7s}
.float-bubble {position:absolute;right:72px;bottom:12px;max-width:210px;background:var(--bubble,#fff);color:var(--bubble-ink,#1d2128);border-radius:16px 16px 4px 16px;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.35;box-shadow:0 8px 20px rgba(16,20,28,.14);animation:bubble-pop 3.4s ease-in-out infinite}
@keyframes wa-balloon {0%{transform:scale(1);opacity:.5}100%{transform:scale(1.75);opacity:0}}
@keyframes bubble-pop {0%,12%{opacity:0;transform:translateY(8px) scale(.96)}22%,72%{opacity:1;transform:none}88%,100%{opacity:0;transform:translateY(8px) scale(.96)}}
@media (max-width:600px) {
  .float-call-label {display:none}
  .float-bubble {max-width:150px;font-size:12px;right:68px}
  .float-btn {width:52px;height:52px}
}
@media (prefers-reduced-motion:reduce) {
  .float-wa .float-btn::before,.float-wa .float-btn::after,.float-bubble {animation:none}
  .float-bubble {opacity:1}
}
.notice {width:min(var(--width),calc(100% - 64px));margin:16px auto 0;padding:12px 16px;border-radius:10px;background:#eff8f0;color:#1e6b32;font-weight:700}
.notice.error {background:#fff1f1;color:#9c0712}
.hp-field {position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
a.service-card {color:inherit}
.page-banner {background:linear-gradient(115deg,#8e0610,#d51020 58%,#9a0712);color:#fff;padding:46px 0 40px}
.page-banner h1 {margin:0 0 10px;font-size:clamp(30px,3.2vw,42px);line-height:1.12;letter-spacing:-.4px;font-weight:800}
.page-banner p {margin:0;max-width:680px;font-size:16px;line-height:1.45}
.page-banner .red-bar {background:#fff}
.info-panel h2 {margin:0 0 6px;font-size:24px}
.page-wrap {padding:36px 0 60px}
.lead {margin:0 0 26px;max-width:740px;color:#353a41;font-size:16px;line-height:1.55}
.text-link {display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:#bd0713;font-size:14px;font-weight:800}
.text-link:hover {text-decoration:underline}
.text-link .icon {width:18px;height:18px}
.service-list {display:grid;gap:18px}
.service-detail {display:grid;grid-template-columns:280px 1fr;gap:0;background:#fff;border:1px solid #f0f0f0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);scroll-margin-top:96px}
.service-detail img {width:100%;height:100%;object-fit:cover;min-height:190px}
.service-detail div {padding:22px 24px}
.service-detail h2 {margin:0 0 8px;font-size:22px;line-height:1.2}
.service-detail p {margin:0;color:#353a41;font-size:15px;line-height:1.5}
.service-detail .icon {color:#cc0717;width:36px;height:36px;margin-bottom:8px}
.product-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.product-card {background:#fff;border:1px solid #f0f0f0;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.product-card > .gallery-card {width:100%;border-radius:0}
.product-card img {width:100%;aspect-ratio:1.63;object-fit:cover}
.product-body {padding:16px 18px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.product-body h2 {margin:0;font-size:18px;line-height:1.25}
.product-body p {margin:0;color:#353a41;font-size:14px;line-height:1.45;flex:1}
.product-body .btn-primary {align-self:flex-start;min-height:42px;padding:0 16px;border-radius:9px;color:#fff}
.gallery-page {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.gallery-page .gallery-card {aspect-ratio:1.55}
.contact-layout {display:grid;grid-template-columns:.85fr 1.15fr;gap:22px;align-items:start}
.info-panel,.form-card {background:#fff;border:1px solid #f0f0f0;border-radius:16px;box-shadow:var(--shadow);padding:22px}
.info-row {display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid #eee}
.info-row:first-of-type {padding-top:4px}
.info-row:last-child {border-bottom:0;padding-bottom:0}
.info-row .icon {color:#cc0717;width:26px;height:26px;margin-top:2px}
.info-row strong {display:block;font-size:13px;margin-bottom:2px}
.info-row span,.info-row a {font-size:15px;line-height:1.4}
.info-row a:hover {color:var(--brand)}
.form-card h2 {margin:0 0 6px;font-size:24px}
.form-card .subtitle {margin:0 0 16px}
.footer-links {display:flex;flex-wrap:wrap;gap:8px 14px}
.footer-links a {color:#eee;font-size:12px;font-weight:700}
.footer-links a:hover,.footer-links a[aria-current="page"] {color:#fff}
@media (max-width:860px) {
  .service-detail,.contact-layout {grid-template-columns:1fr}
  .page-banner {padding:34px 0 30px}
}
@media (max-width:600px) {
  .product-grid,.gallery-page {grid-template-columns:1fr}
  .service-detail div,.info-panel,.form-card {padding:18px}
}
