.header .logo{margin-right:auto}.header .nav{margin-left:0}.language-switch{position:relative;flex:none;font-size:13px;font-weight:750}.language-switch summary{list-style:none;cursor:pointer;min-width:64px;border:1px solid #c9d0c9;padding:10px 12px;display:flex;justify-content:space-between;gap:12px}.language-switch summary::-webkit-details-marker{display:none}.language-options{position:absolute;right:0;top:calc(100% + 5px);width:145px;background:#fff;border:1px solid #d5dad3;box-shadow:0 6px 15px #00000012;z-index:15;padding:4px}.language-options a{display:block;padding:8px 10px;font-weight:500}.language-options a:hover,.language-options a[aria-current]{background:#f4f2eb;color:#715934}.nav a[aria-current]{color:#876b3b;border-bottom:2px solid #b08e57;padding-bottom:4px}.service-card .card-link{margin-top:auto;padding-top:18px;font-weight:750;font-size:13px;color:#43634e;display:inline-block}.service-card h2{font-size:22px;line-height:1.3;letter-spacing:-.025em;margin:24px 0 12px}.section-end{margin-top:32px;display:flex;justify-content:flex-end}.subhero{background:#1c3529;color:#fff;padding:90px 0 95px;position:relative;overflow:hidden}.subhero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#14271fee,#14271fba),url('hero.png') center/cover;opacity:.75}.subhero .wrap{position:relative}.subhero .section-label{color:#d6b77c;margin-bottom:22px}.subhero h1{font-size:clamp(42px,5.6vw,75px);line-height:1.08;letter-spacing:-.05em;max-width:850px;margin:0 0 22px}.subhero p:last-child{max-width:670px;color:#dce7dd;font-size:18px;line-height:1.7;margin:0}.services-page{padding-top:85px}.services-page .section-label{margin-bottom:30px}.services-page .service-grid{grid-template-columns:repeat(3,1fr)}.services-page .service-card{min-height:260px}.about-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;padding-top:100px;padding-bottom:110px;align-items:center}.about-layout h2{font-size:clamp(35px,4vw,55px);line-height:1.12;letter-spacing:-.045em;margin:0 0 26px}.about-layout p{font-size:17px;line-height:1.8;color:#536056;max-width:660px}.about-layout .button{margin-top:18px}.about-layout figure{margin:0}.about-layout img{width:100%;aspect-ratio:4/4.1;object-fit:cover;object-position:66% center}.about-layout figcaption{font-size:12px;color:#6c756e;margin-top:10px}.process-page .steps article{padding:28px 35px 5px 0}.process-page .steps article+article{padding-left:35px;border-left:1px solid #dddcd5}.process-page .steps h2{font-size:23px;margin:21px 0 12px}.contact-band{background:#14271f;color:#fff;padding:72px 0}.contact-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:60px}.contact-band h2{font-size:clamp(34px,4vw,55px);line-height:1.1;letter-spacing:-.04em;margin:12px 0}.contact-band p:not(.section-label){max-width:660px;color:#cbd8cc;margin:0;font-size:16px}.contact-band .button{flex:none}.contact-page{padding:90px 0}.contact-page .contact-copy h2{margin:0 0 20px}.contact-page .inquiry{padding:35px}.legal-content .text-link{margin-top:28px}.welcome-page{background:#14271f;color:#fff}.welcome{min-height:100svh;position:relative;display:flex;align-items:center}.welcome-photo,.welcome-shade{position:absolute;inset:0}.welcome-photo{background:url('hero.png') center/cover}.welcome-shade{background:linear-gradient(90deg,#0a1b14eb,#0a1b149c 60%,#0a1b1440)}.welcome-content{position:relative;width:min(100% - 48px,1050px);margin:auto;padding:50px 0}.welcome-mark{border:2px solid #fff;width:80px;height:65px;display:grid;place-items:center;font-size:25px;font-weight:900;letter-spacing:-4px}.welcome-mark span{color:#d8b67c}.welcome-place{letter-spacing:.14em;text-transform:uppercase;color:#d7bb88;font-size:12px;font-weight:750;margin:35px 0 16px}.welcome h1{font-size:clamp(35px,5.5vw,68px);line-height:1.08;letter-spacing:-.05em;margin:0}.welcome-content>p:last-of-type{font-size:15px;color:#dae3da;margin:20px 0 32px}.welcome nav{display:flex;flex-wrap:wrap;gap:8px}.welcome nav a{border:1px solid #ffffff7d;padding:10px 14px;display:flex;align-items:center;gap:18px;font-size:13px;font-weight:700}.welcome nav a:hover{background:#fff;color:#14271f}.welcome nav a span{font-size:15px}@media(max-width:1050px){.header-row{gap:15px}.nav{gap:18px}.nav a{font-size:13px}}@media(max-width:900px){.services-page .service-grid{grid-template-columns:repeat(2,1fr)}.services-page .service-card{grid-column:auto}.about-layout{gap:35px}}@media(max-width:680px){.header .logo{margin-right:0}.header .menu-button{margin-left:auto}.language-switch{order:3}.language-switch summary{min-width:55px;padding:7px 8px}.header .nav{order:4}.subhero{padding:68px 0 72px}.subhero p:last-child{font-size:16px}.services-page .service-grid{grid-template-columns:1fr}.services-page .service-card{min-height:225px}.about-layout{grid-template-columns:1fr;padding-top:75px;padding-bottom:80px}.about-layout img{aspect-ratio:4/3}.process-page .steps article,.process-page .steps article+article{padding:25px 0;border-left:0;border-bottom:1px solid #dddcd5}.contact-band .wrap{align-items:flex-start;flex-direction:column;gap:25px}.contact-page{padding:70px 0}.welcome-content{padding:45px 0}.welcome nav a{min-width:115px;justify-content:space-between}}
.welcome-mark{display:flex;align-items:center;justify-content:center;padding-right:4px}.welcome-mark span{padding:0 3px}
.field-hint{color:#6b776e;font-size:12px;font-weight:500}

/* Service photography adds context while keeping the original card hierarchy. */
.service-card-photo { padding: 0; overflow: hidden; }
.service-card-photo .service-image { display: block; width: 100%; height: 250px; object-fit: cover; }
.service-card-photo .service-num { margin: 25px 30px 18px; }
.service-card-photo h3,
.service-card-photo p,
.service-card-photo .card-link { margin-left: 30px; margin-right: 30px; }
.service-card-photo .card-link { margin-bottom: 30px; }
.service-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 36px; }
.service-gallery figure { position: relative; margin: 0; overflow: hidden; background: #d8d8d0; aspect-ratio: 16 / 9; }
.service-gallery img { display: block; width: 100%; height: 100%; object-fit: cover; }
.service-gallery figcaption { position: absolute; inset: auto 0 0; padding: 36px 20px 18px; color: #fff; font-size: 15px; font-weight: 750; background: linear-gradient(transparent, #0a1b14ae); }
.about-layout figure { aspect-ratio: 4 / 4.1; }
.about-layout img { height: 100%; object-position: 48% center; }
@media (prefers-reduced-motion: no-preference) {
  .service-card-photo .service-image,
  .service-gallery img { transition: transform .45s ease; }
  .service-card-photo:hover .service-image,
  .service-gallery figure:hover img { transform: scale(1.035); }
}
@media (max-width: 680px) {
  .service-card-photo .service-image { height: 215px; }
  .service-gallery { gap: 8px; margin-bottom: 25px; }
  .service-gallery figure { aspect-ratio: 4 / 5; }
  .service-gallery figcaption { font-size: 13px; padding: 30px 12px 12px; }
  .about-layout figure { aspect-ratio: 4 / 3; }
}

.welcome-greeting { min-height: 1.1em; }
.welcome-greeting [data-greeting] { display: inline-block; }
@media (prefers-reduced-motion: no-preference) {
  .welcome-greeting [data-greeting] {
    transition: opacity .22s ease, transform .22s ease;
  }
  .welcome-greeting [data-greeting].is-changing {
    opacity: 0;
    transform: translateY(-6px);
  }
}

/* A quiet opening for the language welcome screen. */
@media (prefers-reduced-motion: no-preference) {
  .welcome { overflow: hidden; }
  .welcome-photo { animation: welcome-scene 1.7s ease-out both; }
  .welcome-mark,
  .welcome-place,
  .welcome h1,
  .welcome-content > p:last-of-type,
  .welcome nav { animation: welcome-enter .65s cubic-bezier(.2,.7,.2,1) both; }
  .welcome-place { animation-delay: .08s; }
  .welcome h1 { animation-delay: .14s; }
  .welcome-content > p:last-of-type { animation-delay: .22s; }
  .welcome nav { animation-delay: .28s; }
  @keyframes welcome-scene {
    from { transform: scale(1.025); filter: brightness(.9); }
    to { transform: scale(1); filter: brightness(1); }
  }
  @keyframes welcome-enter {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

/* Site upgrade: direct contact, factual trust, FAQ, and responsive footer. */
picture { display: block; }
.service-gallery picture { height: 100%; }
.subhero:before { background: linear-gradient(90deg,#14271fee,#14271fba), url('hero.jpg') center/cover; background-image: linear-gradient(90deg,#14271fee,#14271fba), image-set(url('hero.webp') type('image/webp'), url('hero.jpg') type('image/jpeg')); }
.welcome-photo { background-image: url('hero.jpg'); background-image: image-set(url('hero.webp') type('image/webp'), url('hero.jpg') type('image/jpeg')); }
.hero h1 { max-width: 860px; }
.hero-actions { gap: 10px; }
.hero-actions .button { min-width: 190px; }
.button-accent { background: #d8b67c; color: #14271f; }
.button-accent:hover { background: #ebcc94; }
.button-outline-dark { border-color: #526a57; color: #21382b; }
.button-outline-dark:hover { background: #edf1ea; }
.hero-service-link { display: inline-flex; align-items: center; gap: 16px; color: #fff; font-size: 14px; font-weight: 700; margin-top: 20px; border-bottom: 1px solid #ffffff9c; padding-bottom: 4px; }
.hero-service-link:hover { color: #e8d3aa; }
.trust { border-top: 1px solid #d7d9d1; padding-top: 38px; padding-bottom: 76px; }
.trust h2 { font-size: clamp(27px, 3vw, 40px); line-height: 1.15; letter-spacing: -.035em; margin: 0 0 30px; }
.trust ul { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 0; padding: 0; }
.trust li { border-top: 1px solid #bac6b8; padding-top: 17px; }
.trust li span { color: #8b7852; font-size: 12px; font-weight: 750; }
.trust li span { color: #77643e; }
.trust h3 { font-size: 19px; margin: 12px 0 8px; }
.trust p { color: #516052; line-height: 1.65; font-size: 15px; margin: 0; }
.faq { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); gap: 8%; border-top: 1px solid #d7d9d1; padding-top: 90px; padding-bottom: 100px; }
.faq h2 { font-size: clamp(35px, 4vw, 54px); line-height: 1.12; letter-spacing: -.045em; margin: 0 0 16px; }
.faq-heading p { color: #58675a; line-height: 1.65; margin: 0; }
.faq-list { border-top: 1px solid #cfd5cb; }
.faq-list details { border-bottom: 1px solid #cfd5cb; }
.faq-list summary { cursor: pointer; list-style: none; font-weight: 750; padding: 20px 42px 20px 0; position: relative; line-height: 1.4; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary:after { content: '+'; position: absolute; right: 7px; top: 17px; font-size: 23px; font-weight: 400; color: #45634a; }
.faq-list details[open] summary:after { content: '−'; }
.faq-list details p { max-width: 660px; color: #526053; line-height: 1.7; padding: 0 30px 20px 0; margin: 0; }
.image-note { font-size: 12px; color: #566259; margin: 15px 0 0; }
.services-page .image-note { margin: -20px 0 32px; }
.services-page .service-icon { display: block; width: 29px; height: 29px; margin: 0 0 22px; color: #9b8050; }
.services-page .service-card h2 { margin-top: 17px; }
.project-gallery { padding-top: 78px; padding-bottom: 88px; }
.project-gallery h2 { font-size: clamp(30px, 3vw, 43px); margin: 0 0 28px; }
.project-gallery > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.project-gallery figure { margin: 0; }
.project-gallery img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.project-gallery figcaption { padding-top: 9px; color: #59655b; font-size: 13px; }
.process-page .section-end { gap: 12px; flex-wrap: wrap; }
.process-page .button-dark { min-width: 205px; }
.service-area { border-top: 1px solid #67806d; margin-top: 38px; padding-top: 25px; }
.service-area h3 { color: #fff; font-size: 18px; margin: 0 0 8px; }
.service-area p { color: #c7d4c9; font-size: 15px; line-height: 1.65; margin: 0; }
.contact-band .section-label { color: #d5b476; }
.field-error { display: block; color: #9c2f22; font-size: 12px; line-height: 1.45; font-weight: 600; margin-top: 6px; }
.field-error[hidden] { display: none; }
.inquiry [aria-invalid="true"] { border-color: #b74635; }
.inquiry input:focus-visible,.inquiry select:focus-visible,.inquiry textarea:focus-visible { outline: 2px solid #846b45; outline-offset: 2px; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline: 2px solid #b79259; outline-offset: 3px; }
.footer-main { align-items: flex-start; }
.footer-main p { line-height: 1.75; }
.footer-contact { display: flex; flex-direction: column; gap: 10px; font-size: 14px; font-weight: 750; }
.footer-contact a:hover,.footer-nav-row a:hover { color: #826739; }
.footer-nav-row { border-top: 1px solid #d8d9d2; padding-top: 21px; padding-bottom: 22px; display: flex; justify-content: space-between; gap: 24px; }
.footer-nav-row nav { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.footer-nav-row a { color: #536056; font-size: 12px; font-weight: 650; }
.footer-nav-row [aria-current="page"] { color: #14271f; text-decoration: underline; text-underline-offset: 4px; }
.mobile-contact { display: none; }
@media (max-width: 900px) {
  .hero { height: auto; min-height: 710px; }
  .hero-inner { min-height: 710px; padding-top: 70px; padding-bottom: 110px; }
  .trust ul { gap: 18px; }
  .footer-nav-row { flex-direction: column; }
}
@media (max-width: 680px) {
  body[data-page] { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .hero { height: auto; min-height: 0; }
  .hero-inner { height: auto; min-height: 760px; padding-top: 58px; padding-bottom: 108px; }
  .hero h1 { font-size: clamp(38px, 11vw, 56px); }
  .hero-text { font-size: 15px; margin: 19px 0 22px; }
  .hero-actions { display: grid; width: 100%; grid-template-columns: 1fr; gap: 8px; }
  .hero-actions .button { width: 100%; min-width: 0; min-height: 48px; padding: 11px 16px; }
  .hero-service-link { margin-top: 17px; }
  .trust { padding-top: 29px; padding-bottom: 65px; }
  .trust ul { grid-template-columns: 1fr; gap: 23px; }
  .trust h2 { margin-bottom: 22px; }
  .faq { grid-template-columns: 1fr; gap: 28px; padding-top: 72px; padding-bottom: 76px; }
  .faq-list summary { padding-top: 18px; padding-bottom: 18px; }
  .footer-main { gap: 20px; }
  .footer-contact { gap: 8px; }
  .footer-nav-row { gap: 23px; }
  .footer-nav-row nav { gap: 12px 18px; }
  .project-gallery > div { grid-template-columns: 1fr; }
  .process-page .section-end { justify-content: stretch; }
  .process-page .section-end .button { width: 100%; }
  .mobile-contact { position: fixed; z-index: 55; left: 0; right: 0; bottom: 0; height: calc(64px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); display: grid; grid-template-columns: repeat(3, 1fr); background: #14271f; box-shadow: 0 -2px 10px #0a1b1422; }
  .mobile-contact a { color: #fff; display: grid; place-items: center; min-height: 64px; font-size: 13px; font-weight: 750; border-right: 1px solid #ffffff30; text-align: center; padding: 0 5px; }
  .mobile-contact a:last-child { border-right: 0; background: #d8b67c; color: #14271f; }
  .mobile-contact a:active { background: #294839; }
  .subhero:before { background-image: linear-gradient(90deg,#14271fee,#14271fba),url('hero-640.jpg'); background-image: linear-gradient(90deg,#14271fee,#14271fba),image-set(url('hero-640.webp') type('image/webp'), url('hero-640.jpg') type('image/jpeg')); }
  .welcome-photo { background-image: url('hero-640.jpg'); background-image: image-set(url('hero-640.webp') type('image/webp'), url('hero-640.jpg') type('image/jpeg')); }
}
@media (max-width: 360px) {
  .header-row { gap: 8px; }
  .header .logo { gap: 8px; min-width: 0; }
  .header .logo-copy small { display: none; }
  .header .logo-copy strong { font-size: 15px; white-space: nowrap; }
  .header .menu-button { padding: 8px; }
  .header .language-switch summary { min-width: 50px; padding: 7px; }
}

/* Display preference: a small, keyboard-accessible icon menu. */
html[data-theme="light"] { color-scheme: light; }
.theme-control { display: flex; align-items: center; gap: 9px; flex: none; font-size: 13px; font-weight: 700; }
.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; }
.theme-picker { position: relative; }
.theme-picker > summary { display: flex; align-items: center; gap: 8px; width: 142px; min-height: 38px; padding: 7px 10px; border: 1px solid #c9d0c9; border-radius: 10px; background: #fff; color: #17251e; cursor: pointer; list-style: none; }
.theme-picker > summary::-webkit-details-marker { display: none; }
.theme-picker > summary::after { content: ''; width: 6px; height: 6px; margin: -4px 2px 0 auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); flex: none; }
.theme-picker[open] > summary::after { transform: rotate(225deg); margin-top: 4px; }
.theme-picker > summary:focus-visible,.theme-options button:focus-visible { outline: 2px solid #b79259; outline-offset: 2px; }
.theme-current-icon,.theme-icon { width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; flex: none; color: #9a7848; }
.theme-current-icon svg,.theme-icon svg { width: 18px; height: 18px; }
.theme-options { position: absolute; top: calc(100% + 6px); right: 0; z-index: 35; width: 190px; padding: 5px; border: 1px solid #c9d0c9; border-radius: 12px; background: #fff; color: #17251e; box-shadow: 0 4px 14px #0a1b1424; }
.theme-options button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 39px; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; color: inherit; text-align: left; font-size: 13px; font-weight: 650; }
.theme-options button:hover,.theme-options button[aria-pressed="true"] { background: #f2eee5; }
.theme-check { margin-left: auto; color: #527157; visibility: hidden; }
.theme-options button[aria-pressed="true"] .theme-check { visibility: visible; }
.theme-control-desktop > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.theme-control-mobile { display: none; }
.theme-control-welcome { position: absolute; top: 22px; right: max(24px, calc((100vw - 1050px) / 2)); z-index: 3; color: #fff; }
.theme-control-welcome .theme-picker > summary,.theme-control-welcome .theme-options { background: #14271f; border-color: #9fac9f; color: #fff; }
.theme-control-welcome .theme-options button:hover,.theme-control-welcome .theme-options button[aria-pressed="true"] { background: #294234; }
@media (max-width: 680px) {
  .theme-control-desktop { display: none; }
  .theme-control-mobile { display: flex; justify-content: space-between; width: 100%; padding: 16px 4px 0; }
  .theme-control-welcome { top: 16px; right: 18px; }
}

html[data-theme="dark"] {
  color-scheme: dark;
  --ink: #f1f3ed;
  --forest: #29493a;
  --forest-dark: #10231a;
  --cream: #192920;
  --paper: #111e17;
  --line: #405646;
  --muted: #b7c9ba;
}
html[data-theme="dark"] body { background: var(--paper); color: var(--ink); }
html[data-theme="dark"] .header,
html[data-theme="dark"] .nav,
html[data-theme="dark"] .legal-header { background: #192a20; border-color: #405646; }
html[data-theme="dark"] .logo-mark { border-color: #d8b67c; color: #f1f3ed; }
html[data-theme="dark"] .logo-mark span { color: #d8b67c; }
html[data-theme="dark"] .menu-button span { background: #f1f3ed; }
html[data-theme="dark"] .nav a { border-color: #405646; }
html[data-theme="dark"] .nav a[aria-current],
html[data-theme="dark"] .footer-nav-row [aria-current="page"] { color: #e6c58f; }
html[data-theme="dark"] .language-switch summary,
html[data-theme="dark"] .theme-picker > summary,
html[data-theme="dark"] .theme-options { background: #192a20; color: #f1f3ed; border-color: #6a806f; }
html[data-theme="dark"] .theme-options button:hover,
html[data-theme="dark"] .theme-options button[aria-pressed="true"] { background: #294234; }
html[data-theme="dark"] .theme-current-icon,
html[data-theme="dark"] .theme-icon { color: #d8b67c; }
html[data-theme="dark"] .theme-check { color: #d8b67c; }
html[data-theme="dark"] .language-options { background: #192a20; border-color: #6a806f; }
html[data-theme="dark"] .language-options a:hover,
html[data-theme="dark"] .language-options a[aria-current] { background: #294234; color: #f4ddb4; }
html[data-theme="dark"] .section-label,
html[data-theme="dark"] .trust li span { color: #d8b67c; }
html[data-theme="dark"] .intro p:not(.section-label),
html[data-theme="dark"] .section-head > p,
html[data-theme="dark"] .trust p,
html[data-theme="dark"] .faq-heading p,
html[data-theme="dark"] .faq-list details p,
html[data-theme="dark"] .steps p,
html[data-theme="dark"] .about-layout p,
html[data-theme="dark"] .legal-content p,
html[data-theme="dark"] .image-note { color: #c5d3c6; }
html[data-theme="dark"] .trust,
html[data-theme="dark"] .trust li,
html[data-theme="dark"] .faq,
html[data-theme="dark"] .faq-list,
html[data-theme="dark"] .faq-list details,
html[data-theme="dark"] .steps,
html[data-theme="dark"] .steps > div,
html[data-theme="dark"] .steps > div + div,
html[data-theme="dark"] .process-page .steps article + article { border-color: #405646; }
html[data-theme="dark"] .faq-list summary:after { color: #d8b67c; }
html[data-theme="dark"] .service-grid { background: #405646; border-color: #405646; }
html[data-theme="dark"] .service-card { background: #213329; }
html[data-theme="dark"] .service-card:hover { background: #294033; }
html[data-theme="dark"] .service-card p,
html[data-theme="dark"] .project-gallery figcaption { color: #c6d3c6; }
html[data-theme="dark"] .service-card .card-link,
html[data-theme="dark"] .text-link,
html[data-theme="dark"] .service-card.wide a { color: #e0be85; }
html[data-theme="dark"] .service-num,
html[data-theme="dark"] .services-page .service-icon { color: #d8b67c; }
html[data-theme="dark"] .service-gallery figure { background: #28392d; }
html[data-theme="dark"] .contact,
html[data-theme="dark"] .contact-band { background: #0e2018; }
html[data-theme="dark"] .inquiry { background: #22342a; color: #f1f3ed; }
html[data-theme="dark"] .inquiry > p,
html[data-theme="dark"] .inquiry .form-note,
html[data-theme="dark"] .field-hint { color: #c4d1c4; }
html[data-theme="dark"] .inquiry input,
html[data-theme="dark"] .inquiry select,
html[data-theme="dark"] .inquiry textarea { background: #17271d; color: #f1f3ed; border-color: #829586; }
html[data-theme="dark"] .inquiry input::placeholder,
html[data-theme="dark"] .inquiry textarea::placeholder { color: #b2c2b4; }
html[data-theme="dark"] .field-error { color: #ffb5a7; }
html[data-theme="dark"] .footer { background: #18281e; }
html[data-theme="dark"] .footer-main p,
html[data-theme="dark"] .footer-bottom,
html[data-theme="dark"] .footer-nav-row a { color: #c4d1c4; }
html[data-theme="dark"] .footer-bottom,
html[data-theme="dark"] .footer-nav-row { border-color: #405646; }
html[data-theme="dark"] .button-light { color: #17251e; }
html[data-theme="dark"] .button-outline-dark { color: #f1f3ed; border-color: #92a999; }
html[data-theme="dark"] .button-outline-dark:hover { background: #294033; }
html[data-theme="dark"] .footer a:hover,
html[data-theme="dark"] .text-link:hover { color: #f2d5a5; }
html[data-theme="dark"] .skip { background: #f1f3ed; color: #17251e; }
html[data-theme="dark"] .welcome-photo { filter: brightness(.7) saturate(.82); }
html[data-theme="dark"] .welcome-shade { background: linear-gradient(90deg,#06140ff2,#06140fc4 62%,#06140f7a); }
html[data-theme="dark"] .mobile-contact { background: #0a1b13; }

@media (min-width: 681px) and (max-width: 900px) {
  .header { height: 72px; }
  .header .logo { margin-right: 0; }
  .header .menu-button { display: flex; margin-left: auto; background: none; border: 0; flex-direction: column; gap: 5px; padding: 10px; }
  .header .menu-button span { width: 24px; height: 2px; background: var(--ink); }
  .header .nav { display: none; position: absolute; top: 72px; left: 0; right: 0; margin-left: 0; padding: 16px 28px 24px; background: #fff; border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; gap: 0; }
  .header .nav.open { display: flex; }
  .header .nav a { padding: 12px 4px; border-bottom: 1px solid var(--line); }
  .theme-control-desktop { display: none; }
  .theme-control-mobile { display: flex; justify-content: space-between; width: 100%; padding: 16px 4px 0; }
  .language-switch { order: 3; }
  .header .nav { order: 4; }
}

/* Service-specific contact paths and two reliable enquiry options. */
.card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 23px; margin-top: auto; }
.service-card .card-actions .card-link { margin-top: 0; white-space: nowrap; }
.service-card-photo .card-actions { margin: 0 30px 30px; }
.service-card-photo .card-actions .card-link { margin: 0; }
.form-actions { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.form-actions .button { min-width: 0; width: 100%; gap: 12px; padding: 13px 14px; }
.button-outline-form { border-color: #8b9c8d; color: #203b31; background: transparent; }
.button-outline-form:hover { background: #edf1ea; }
#inquiry-form { scroll-margin-top: 22px; }
.brief-guide { margin: -7px 0 19px; padding: 11px 14px; border-left: 3px solid #ad8a55; background: #f5f4ef; color: #35463a; }
.brief-guide strong { display: block; font-size: 12px; line-height: 1.4; }
.brief-guide p { margin: 4px 0 0; font-size: 13px; font-weight: 400; line-height: 1.55; }
html[data-theme="dark"] .brief-guide { background: #2b4031; border-left-color: #d8b67c; color: #e2eae0; }

/* A compact architectural mark and a short, session-only opening. */
.logo-mark { border: 0; padding: 0; color: var(--forest); }
.brand-mark { display: block; width: 100%; height: 100%; }
.welcome-mark { border: 0; padding: 0; color: #f4f3ed; }
.site-intro { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: #14271f; color: #f4f3ed; pointer-events: none; }
.site-intro-inner { display: flex; flex-direction: column; align-items: center; gap: 13px; width: 175px; }
.site-intro .brand-mark { width: 96px; height: 77px; }
.site-intro strong { font-size: 17px; font-weight: 750; letter-spacing: .015em; white-space: nowrap; }
.site-intro-line { width: 120px; height: 2px; background: #c8a366; transform-origin: left; }
.language-flag { display: block; width: 18px; height: 13px; flex: none; object-fit: cover; border-radius: 1px; }
.language-switch summary.has-flag { min-width: 0; justify-content: flex-start; gap: 6px; }
.language-switch summary.has-flag span:last-child { margin-left: 4px; }
.language-options a.language-option,
.footer-nav-row a.language-option { display: inline-flex; align-items: center; gap: 7px; }
.language-options a.language-option { display: flex; }
.welcome nav a .welcome-language-name { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; }
.footer-credit { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.footer-credit .language-flag { width: 18px; height: 13px; }
.legal-content h1 { font-size: clamp(32px, 6vw, 50px); overflow-wrap: anywhere; }
@media (max-width: 680px) { .header-row { gap: 10px; } }
@media (max-width: 420px) {
  .header .logo { gap: 8px; min-width: 0; }
  .header .logo-copy small { display: none; }
  .header .logo-copy strong { font-size: 15px; white-space: nowrap; }
}
@media (max-width: 360px) { .header-row { gap: 8px; } }
html.intro-seen .site-intro { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .site-intro { animation: site-intro-out .32s ease .82s forwards; }
  .site-intro-inner { animation: site-intro-in .38s ease both; }
  .site-intro-line { animation: site-intro-progress .65s ease .12s both; }
  @keyframes site-intro-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
  @keyframes site-intro-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  @keyframes site-intro-out { to { opacity: 0; visibility: hidden; } }
}
@media (prefers-reduced-motion: reduce) { .site-intro { display: none; } }
html[data-theme="dark"] .button-outline-form { border-color: #91a594; color: #f1f3ed; }
html[data-theme="dark"] .button-outline-form:hover { background: #294033; }
@media (max-width: 900px) {
  .form-actions { grid-template-columns: 1fr; }
}

/* Rounded controls and cards, using one restrained radius scale. */
.service-grid { gap: 16px; background: transparent; border: 0; }
.service-card { border: 1px solid #d8d8d0; border-radius: 14px; overflow: hidden; }
.service-gallery figure,
.about-layout figure,
.project-gallery figure { border-radius: 12px; overflow: hidden; }
.button,
.header-contact,
.welcome nav a,
.mobile-contact { border-radius: 8px; }
.inquiry { border-radius: 14px; }
.inquiry input,
.inquiry select,
.inquiry textarea,
.language-switch summary { border-radius: 8px; }
.language-options,
.skip { border-radius: 10px; }
.header .nav { border-radius: 0 0 12px 12px; }
.mobile-contact { border-radius: 12px 12px 0 0; }
.mobile-contact a:first-child { border-top-left-radius: 12px; }
.mobile-contact a:last-child { border-top-right-radius: 12px; }
html[data-theme="dark"] .service-grid { background: transparent; border: 0; }
html[data-theme="dark"] .service-card { border-color: #405646; }

.not-found-page { min-height: 100vh; background: #f3f2ec; color: #172e23; }
.not-found { box-sizing: border-box; width: min(700px, 100%); min-height: 100vh; margin: auto; padding: clamp(42px, 8vw, 90px) 24px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.not-found-mark { width: 64px; height: 52px; margin-bottom: 35px; color: #244d36; }
.not-found-code { margin: 22px 0 5px; color: #ad8a55; font-size: clamp(80px, 17vw, 148px); font-weight: 750; line-height: .9; letter-spacing: -.07em; }
.not-found h1 { margin: 16px 0; font-size: clamp(34px, 6vw, 58px); line-height: 1.08; }
.not-found > p:not(.not-found-code):not(.section-label) { max-width: 550px; font-size: 17px; line-height: 1.6; }
.not-found-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 36px; }
.not-found-languages { display: flex; flex-wrap: wrap; gap: 8px 20px; border-top: 1px solid #cad1c8; padding-top: 22px; width: 100%; }
.not-found-languages a { display: inline-flex; align-items: center; gap: 7px; color: inherit; font-size: 14px; }
.not-found-languages a:hover { text-decoration: underline; }
html[data-theme="dark"] .not-found-page { background: #14271f; color: #f1f3ed; }
html[data-theme="dark"] .not-found-mark { color: #e9eee4; }
html[data-theme="dark"] .not-found-languages { border-color: #405646; }
@media (max-width: 480px) { .not-found-actions { width: 100%; } .not-found-actions .button { width: 100%; justify-content: space-between; } }

/* Address map loads only after the visitor selects it. */
.location-section { padding-top: 76px; padding-bottom: 96px; }
.location-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 25px; }
.location-heading h2 { margin: 8px 0 12px; font-size: clamp(32px, 4vw, 48px); line-height: 1.12; letter-spacing: -.035em; }
.location-heading address { font-style: normal; color: #526258; }
.location-heading .text-link { flex: none; margin-bottom: 4px; }
.map-panel { min-height: 350px; border: 1px solid #cbd3c9; border-radius: 12px; overflow: hidden; background: #eff1eb; }
.map-placeholder { min-height: 350px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 14px; padding: 30px; text-align: center; }
.map-placeholder svg { width: 34px; height: 42px; color: #41664e; }
.map-placeholder strong { font-size: 16px; }
.map-placeholder .button { margin-top: 6px; }
.map-placeholder p { max-width: 480px; margin: 0; font-size: 12px; color: #56665a; }
.map-panel iframe { display: block; width: 100%; height: 390px; border: 0; }
html[data-theme="dark"] .location-heading address { color: #c4d1c4; }
html[data-theme="dark"] .map-panel { background: #22392b; border-color: #405646; }
html[data-theme="dark"] .map-placeholder svg,
html[data-theme="dark"] .map-placeholder p { color: #d0dece; }
@media (max-width: 680px) { .location-section { padding-top: 62px; padding-bottom: 74px; } .location-heading { align-items: flex-start; flex-direction: column; gap: 12px; } .map-panel,.map-placeholder { min-height: 310px; } .map-panel iframe { height: 350px; } }
