/* Warm ivory and forest green homepage. Loaded after the existing page styles. */
:root {
  --green-950: #10382e;
  --green-900: #173e33;
  --green-800: #285447;
  --gold-500: #ac782f;
  --gold-400: #d6ad6b;
  --paper: #fbf9f4;
  --ink: #203a31;
  --muted: #626b60;
  --cream: #f2ecdf;
  --sage: #e3eddc;
  --line: #dedbcf;
  --page-gutter: max(24px, calc((100vw - 1200px) / 2));
}

body { background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
section[id], .reference-container { scroll-margin-top: 112px; }
.btn, .contact-btn { border-radius: 6px; background: var(--green-950); color: #fffdf8; min-height: 48px; padding: 13px 25px; font-size: 15px; line-height: 1.45; text-align: center; transition: background .2s, box-shadow .2s, transform .2s; }
.btn:hover, .btn:focus-visible, .contact-btn:hover, .contact-btn:focus-visible { color: #fffdf8; background: var(--green-800); box-shadow: 0 5px 16px #173e3315; transform: translateY(-1px); }
.btn-secondary { border: 1px solid var(--green-950); background: #fbf9f4e8; color: var(--green-950); }
.btn-secondary:hover, .btn-secondary:focus-visible { color: var(--green-950); background: #e8ecdf; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #b98238; outline-offset: 4px; }
.empty-reference .btn { color: #fffdf8; }

/* A quiet, light navigation keeps the kitchen photograph in focus. */
header { min-height: 91px; padding: 15px var(--page-gutter); gap: 24px; color: var(--green-950); background: #fcfaf6; border-bottom: 1px solid #ddd8ca; box-shadow: 0 3px 14px #203a3108; }
.logo { flex: 0 0 auto; gap: 11px; }
.logo-mark { width: 51px; height: 51px; filter: none; }
.logo .logo-name { color: var(--green-950); font-size: 20px; letter-spacing: .5px; }
.logo .logo-accent { color: #a97127; }
.logo .logo-service { display: block; margin-top: 7px; color: #38594c; font-size: 9px; letter-spacing: 1.15px; }
header nav { display: flex; align-items: center; gap: 24px; }
header nav a { margin: 0; padding: 6px 0; color: var(--green-950); font-size: 14px; font-weight: 650; white-space: nowrap; }
header nav a:hover, header nav a:focus-visible { color: #916020; }
header nav .nav-cutting { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 11px 15px; border: 1px solid #b7c9ad; border-radius: 5px; color: var(--green-950); background: var(--sage); }
header nav .nav-cutting:hover, header nav .nav-cutting:focus-visible { color: var(--green-950); background: #d5e3cc; border-color: #9bb591; }
.nav-cutting-arrow { font-size: 18px; line-height: 1; }
header nav .nav-cta { margin: 0; padding: 12px 17px; color: #fffdf8; background: var(--green-950); border-radius: 5px; }
header nav .nav-cta:hover, header nav .nav-cta:focus-visible { color: #fffdf8; background: var(--green-800); }
.menu-toggle { color: var(--green-950); font-size: 27px; border: 1px solid #d7d7ca; border-radius: 5px; flex: 0 0 44px; }

.hero { min-height: 600px; padding: 66px var(--page-gutter) 57px; color: var(--green-950); background-color: #efeade; background-image: linear-gradient(90deg, #f8f4eb 0%, #f8f4ebfa 24%, #f8f4ebd4 39%, #f8f4eb35 59%, #f8f4eb00 74%), url("konyhabutor-hero.webp"); background-size: cover; background-position: center, 70% 52%; text-align: left; }
.hero-content { max-width: 1200px; }
.hero-eyebrow { margin-bottom: 19px; color: #956020; font-size: 12px; letter-spacing: 1.4px; }
.hero-eyebrow::before { width: 31px; }
.hero h1 { max-width: 590px; font-size: clamp(46px, 4.7vw, 65px); line-height: 1.055; letter-spacing: -2.4px; font-weight: 780; }
.hero h1 span { color: #9a651f; }
.hero p { max-width: 570px; margin: 23px 0 26px; color: #254337; font-size: 19px; line-height: 1.55; }
.hero p strong { font-weight: 650; }
.hero-actions { gap: 11px; }
.hero .hero-note, .hero .hero-reassurance { margin: 12px 0 0; font-size: 13px; color: #4d6155; }
.hero-proof { max-width: 660px; gap: 11px 26px; margin-top: 27px; color: #27473a; font-size: 13px; }
.hero-proof li { gap: 8px; }
.hero-proof li::before { color: #9a651f; font-size: 22px; font-weight: 700; }

/* Lapszabászat remains immediately accessible without two large chooser cards. */
.cutting-quick { position: relative; padding: 25px var(--page-gutter); background: #285447; border-block: 1px solid #346452; }
.cutting-quick-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1200px; margin: 0 auto; }
.cutting-quick h2 { margin: 0 0 3px; color: #fffdf8; font-size: 21px; line-height: 1.3; letter-spacing: -.4px; }
.cutting-quick p { max-width: 650px; margin: 0; color: #e2ebe0; font-size: 14px; }
.cutting-quick-actions { display: flex; align-items: center; gap: 17px; flex: 0 0 auto; }
.section-kicker { display: block; margin-bottom: 6px; color: #916020; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; }
.anchor-alias { position: absolute; top: 0; scroll-margin-top: 112px; }
.cutting-quick .section-kicker { color: #e9c990; }
.cutting-quick .btn { min-height: 44px; padding: 11px 20px; font-size: 14px; color: #173e33; background: #f5ecd8; }
.cutting-quick .btn:hover, .cutting-quick .btn:focus-visible { color: #173e33; background: #fff9ea; }
.cutting-quick .card-detail-link, .cutting-quick .text-link { display: inline-block; margin: 0; font-size: 13px; color: #f4e3bd; font-weight: 650; text-underline-offset: 4px; }
.cutting-quick a:focus-visible { outline-color: #f5d394; }

.kitchen-showcase { padding: 65px var(--page-gutter) 58px; background: var(--paper); }
.showcase-inner { max-width: 1200px; }
.showcase-heading { max-width: 900px; margin-bottom: 25px; }
.showcase-heading .design-feature-kicker { color: #99662b; font-size: 12px; letter-spacing: 1.2px; }
.showcase-heading h2 { margin: 7px 0 12px; color: var(--green-950); font-size: clamp(31px, 3.15vw, 43px); letter-spacing: -1.1px; line-height: 1.17; }
.showcase-heading p { max-width: 790px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.kitchen-project { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 20px; padding: 23px; margin: 0; border: 1px solid #e6e1d7; border-radius: 10px; background: #fffefb; box-shadow: 0 5px 24px #3f3d2d06; }
.kitchen-project + .kitchen-project { margin-top: 24px; }
.kitchen-project--grey { background: #f3f2e8; border-color: #dddccb; }
.kitchen-project-title { display: flex; grid-column: 1; align-items: flex-start; gap: 12px; margin: 0; }
.kitchen-project-number { display: inline-flex; flex: 0 0 35px; align-items: center; justify-content: center; width: 35px; height: 35px; margin-bottom: 0; color: #385d49; background: #e3eadb; border: 1px solid #d2dcc8; border-radius: 50%; font-size: 12px; }
.kitchen-project h3 { color: var(--green-950); font-size: 22px; letter-spacing: -.3px; }
.kitchen-project-title p { margin: 7px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.kitchen-pair { grid-column: 1; gap: 18px; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr); align-items: end; }
.kitchen-project--grey .kitchen-pair { grid-template-columns: minmax(0, 4fr) minmax(0, 3fr); }
.kitchen-pair .showcase-label { display: inline-flex; flex-direction: row; align-items: center; width: fit-content; max-width: 100%; min-height: 30px; margin-bottom: 12px; padding: 5px 12px; border: 1px solid; border-radius: 999px; font-size: 13px; font-weight: 650; line-height: 1.4; }
.kitchen-pair .showcase-label--plan { color: #79572f; background: #f4e9d6; border-color: #e6d6b9; }
.kitchen-pair .showcase-label--finished { color: #254b39; background: #e3ecdc; border-color: #cddcc3; }
.showcase-image { border-radius: 6px; background: #edeae3; }
.kitchen-pair .showcase-image img { height: auto; }
.showcase-zoom { color: #fff; background: #173e33ee; border-color: #ffffff3b; }
.kitchen-details { grid-column: 1 / -1; margin-top: 0; border-color: #e0dfd2; }
.kitchen-details summary { padding-top: 14px; color: #385d49; font-size: 14px; }
.showcase-footer { margin-top: 26px; gap: 18px; }
.showcase-footer h3 { color: var(--green-950); font-size: 21px; }
.showcase-footer p { color: var(--muted); font-size: 14px; }
.showcase-footer .btn { padding: 12px 21px; }

.furniture { padding: 59px var(--page-gutter) 35px; background: var(--sage); }
.furniture-content { max-width: 1200px; }
.intro { max-width: 820px; margin: 0 0 27px; text-align: left; }
.intro h2 { margin-bottom: 10px; color: var(--green-950); font-size: clamp(30px, 3vw, 40px); line-height: 1.2; letter-spacing: -.8px; }
.intro p { color: var(--muted); font-size: 16px; }
.furniture-types { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
button.type { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; min-width: 0; min-height: 0; padding: 0; overflow: hidden; color: var(--green-950); background: #fffaf1; border: 1px solid #d8dccd; border-radius: 8px; box-shadow: 0 4px 13px #362f2108; transition: transform .2s, box-shadow .2s, border-color .2s; }
button.type::before { content: none; }
button.type .type-photo { display: block; position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: 205px; overflow: hidden; background: #e9e4d7; }
button.type .type-image { display: block; position: static; width: 100%; height: 100%; object-fit: cover; object-position: center; }
button.type:hover .type-image, button.type:focus-visible .type-image { transform: scale(1.025); }
button.type .type-copy { display: grid; grid-template-columns: minmax(0, 1fr) 28px; column-gap: 10px; row-gap: 5px; flex: 1; align-content: center; padding: 14px 18px; border-top: 1px solid #d5b67f; background: #fffaf1; text-align: left; transition: background .2s; }
button.type .type-title { grid-column: 1 / -1; margin: 0; color: var(--green-950); font-size: 21px; line-height: 1.25; letter-spacing: -.25px; }
button.type .type-description { align-self: center; margin: 0; color: #4e6252; font-size: 12px; line-height: 1.45; }
button.type .type-arrow { display: inline-flex; align-items: center; justify-content: center; align-self: center; width: 28px; height: 28px; color: #315547; background: #eef1e5; border: 1px solid #d9dcc8; border-radius: 50%; font-size: 19px; line-height: 1; transition: background .2s, color .2s, transform .2s; }
button.type:hover { transform: translateY(-3px); border-color: #b6bd9f; box-shadow: 0 9px 23px #362f2112; }
button.type:hover .type-copy, button.type:focus-visible .type-copy { background: #f8f3e7; }
button.type.active { border-color: #6c8c6a; box-shadow: 0 0 0 2px #6c8c6a38; }
button.type.active .type-copy { background: #edf2e6; }
button.type.active .type-arrow { color: #fffdf5; background: var(--green-800); border-color: var(--green-800); transform: rotate(90deg); }

.references { padding: 0 var(--page-gutter) 53px; background: var(--sage); }
.reference-container.active { padding-top: 17px; }
.reference-heading { margin-bottom: 26px; }
.reference-heading h2 { color: var(--green-950); font-size: 30px; }
.reference-heading p { color: var(--muted); }
.gallery { gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery-item { border-radius: 7px; box-shadow: 0 5px 20px #362f2110; }
.gallery-item img { height: 250px; }
.empty-reference { background: #fffcf5; color: var(--muted); border: 1px solid #e4ddcf; }

.process { padding: 62px var(--page-gutter) 45px; background: #f6f1e6; }
.process-container { display: grid; grid-template-columns: minmax(240px, .95fr) minmax(0, 2fr); align-items: start; gap: 48px; max-width: 1200px; }
.process-header { max-width: 355px; margin: 0; text-align: left; }
.process-header h2 { margin-bottom: 15px; color: var(--green-950); font-size: 33px; line-height: 1.18; letter-spacing: -.75px; }
.process-header p { color: #5b685c; font-size: 16px; line-height: 1.6; }
.process-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.process-steps::before { top: 23px; left: 22px; right: 34px; height: 1px; background: #c0a376; }
.process-step { text-align: left; background: transparent; }
.step-number { width: 46px; height: 46px; margin: 0 0 18px; color: #fff; border: 5px solid #f6f1e6; background: #a97833; font-size: 20px; }
.process-step h3 { margin-bottom: 8px; color: var(--green-950); font-size: 17px; line-height: 1.35; }
.process-step p { max-width: none; margin: 0; color: #687062; font-size: 13px; line-height: 1.65; }

/* A compact guestbook: two paper pages on a quiet forest-green cover. */
.customer-reviews { padding: 0 var(--page-gutter) 30px; background: #f6f1e6; }
.reviews-inner { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 2fr); align-items: center; gap: 45px; max-width: 1200px; margin: 0 auto; padding-top: 26px; border-top: 1px solid #dfd6c5; }
.review-heading { padding-bottom: 35px; }
.customer-reviews h2 { max-width: 300px; margin: 0 0 17px; color: var(--green-950); font-size: 24px; line-height: 1.35; letter-spacing: -.4px; }
.review-carousel { position: relative; min-width: 0; max-width: 800px; width: 100%; margin-inline: auto; }
.review-viewport { position: relative; isolation: isolate; perspective: 1400px; padding: 0; border: 1px solid #b9b098; border-bottom: 0; border-radius: 7px 9px 6px 7px; background: #fdf9ef; box-shadow: 0 5px 0 -1px #dfd7c6, 0 7px 0 -1px #fffaf0, 0 10px 0 -1px #345347, 0 18px 25px -13px #3c392759; touch-action: pan-y; }
.review-viewport::after { content: ""; position: absolute; z-index: 2; top: 0; bottom: 0; left: 50%; width: 24px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, #594b3010 30%, #594b3040 49%, #fffdf050 52%, transparent); pointer-events: none; }
.review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 216px; }
.review { display: flex; flex-direction: column; align-items: center; justify-content: center; box-sizing: border-box; min-width: 0; min-height: 216px; margin: 0; padding: 21px 30px; color: var(--green-950); text-align: center; background: linear-gradient(90deg, #fffdf5, #fcf7eb 87%, #e7decc); border-radius: 6px 0 0 5px; }
.review:nth-child(even), .review.is-right { background: linear-gradient(90deg, #e7decc, #fcf7eb 13%, #fffdf5); border-radius: 0 7px 5px 0; }
.review.is-left { grid-column: 1; grid-row: 1; background: linear-gradient(90deg, #fffdf5, #fcf7eb 87%, #e7decc); border-radius: 6px 0 0 5px; }
.review.is-right { grid-column: 2; grid-row: 1; }
.review[hidden] { display: none; }
.review-stars { margin-bottom: 11px; color: #a97825; font-size: 18px; letter-spacing: 3px; line-height: 1.3; }
.review blockquote { margin: 0 0 13px; font-family: Georgia, 'Times New Roman', serif; font-size: 18px; line-height: 1.5; font-style: italic; }
.review figcaption { color: #304e3e; font-size: 12px; line-height: 1.6; }
.review-source { display: block; margin-top: 3px; color: #626b60; font-family: inherit; font-style: normal; font-size: 10px; line-height: 1.6; }
.book-leaf { position: absolute; z-index: 4; top: 0; bottom: 0; width: 50%; transform-style: preserve-3d; transition: transform .85s cubic-bezier(.36, .07, .22, 1); pointer-events: none; }
.book-leaf.is-next { left: 50%; transform-origin: left center; }
.book-leaf.is-prev { left: 0; transform-origin: right center; }
.book-leaf.is-next.is-turning { transform: rotateY(-180deg); }
.book-leaf.is-prev.is-turning { transform: rotateY(180deg); }
.book-leaf-front, .book-leaf-back { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; }
.book-leaf-front { transform: rotateY(0deg); }
.book-leaf-back { transform: rotateY(180deg); }
.book-leaf .review { width: 100%; height: 100%; min-height: 0; grid-column: auto; grid-row: auto; box-shadow: 0 2px 10px #594b3020; }
.review-controls { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 18px 0 0; }
.review-controls[hidden] { display: none; }
.review-controls button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 0; border: 1px solid #d4dccd; background: #edf2e8; color: var(--green-950); font: inherit; cursor: pointer; transition: background .2s; }
.review-controls button:hover { background: #dce8d6; }
.review-controls button:focus-visible { outline-offset: 2px; }
.review-controls .review-arrow { flex: 0 0 40px; border-radius: 50%; font-size: 21px; line-height: 1; }
.review-controls [data-review-prev] { order: 0; }
.review-controls [data-review-next] { order: 2; }
.review-position { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.reviews-link { display: block; width: fit-content; margin: 0; color: #916020; font-size: 12px; font-weight: 650; line-height: 1.5; text-underline-offset: 4px; }
.reviews-link:hover { color: var(--green-950); }
@media (max-width: 960px) {
  .reviews-inner { grid-template-columns: 1fr; gap: 22px; }
  .review-heading { padding-bottom: 0; }
  .customer-reviews h2 { max-width: none; margin-bottom: 9px; }
  .review { padding-inline: 25px; }
}
@media (max-width: 640px) {
  .review-carousel { max-width: 410px; }
  .review-viewport { overflow: hidden; border-left: 5px solid #345347; border-radius: 4px 9px 6px 4px; }
  .review-viewport::after { left: 0; width: 18px; transform: none; background: linear-gradient(90deg, #594b3020, transparent); }
  .review-grid { grid-template-columns: 1fr; }
  .review, .review.is-left, .review.is-right { grid-column: 1; background: linear-gradient(90deg, #eee5d3, #fffdf5 9%, #fffdf5); border-radius: 0 7px 5px 0; padding: 22px 26px; min-height: 215px; }
  .review-grid > .review:not([hidden]) { grid-row: auto; }
  .review blockquote { font-size: 19px; }
  .review-stars { font-size: 18px; }
  .review figcaption { font-size: 13px; }
  .review-source { font-size: 11px; }
  .book-leaf { width: 100%; }
  .book-leaf.is-next, .book-leaf.is-prev { left: 0; }
  .book-leaf.is-next.is-turning { transform: rotateY(-105deg); }
  .book-leaf.is-prev.is-turning { transform: rotateY(105deg); }
  .book-leaf-back { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .book-leaf { transition: none; }
}

.quote-section { position: relative; isolation: isolate; padding: 68px var(--page-gutter); color: var(--green-950); background: #f4eddf; border-block: 1px solid #e4d8c0; }
.quote-section::before { content: ""; position: absolute; z-index: -1; inset: auto 0 0; height: 680px; max-height: 100%; pointer-events: none; background-image: linear-gradient(180deg, #f4eddf 0%, #f7f2e7b3 35%, #f7f2e724 72%, #f7f2e70f 100%), url("quote-atmosphere-v1.webp"); background-size: cover; background-position: center, left bottom; background-repeat: no-repeat; }
.quote-container { display: grid; grid-template-columns: minmax(0, .83fr) minmax(0, 1.17fr); align-items: start; gap: 65px; max-width: 1200px; }
.quote-header { padding-top: 22px; margin: 0; text-align: left; }
.quote-header h2 { margin-bottom: 19px; color: var(--green-950); font-size: clamp(33px, 3.25vw, 43px); line-height: 1.13; letter-spacing: -.95px; }
.quote-header p { color: #455b4b; font-size: 17px; line-height: 1.75; }
.quote-header .quote-header-note { margin-top: 20px; color: #677061; font-size: 14px; }
.quote-form { min-width: 0; padding: 31px; color: #314a3a; background: #fffdf8; border: 1px solid #e3dccd; border-radius: 9px; box-shadow: 0 8px 35px #67542b0a; }
.request-intro { color: #5c685c; font-size: 14px; line-height: 1.6; }
.form-help { font-size: 12px; color: #717466; }
.quote-required-note { margin-bottom: 17px; }
.form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-group { min-width: 0; margin-bottom: 17px; }
.quote-form label { margin-bottom: 6px; color: #304c3c; font-size: 13px; font-weight: 650; }
.quote-form input, .quote-form select, .quote-form textarea { min-width: 0; max-width: 100%; padding: 12px; color: #283e31; background: #fff; border: 1px solid #d9dcd1; border-radius: 5px; font-size: 16px; line-height: 1.4; }
.quote-form input::placeholder, .quote-form textarea::placeholder { color: #8a9187; opacity: 1; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { border-color: #5e8266; }
.quote-form textarea { min-height: 130px; }
.callback-extra { margin: 22px 0; background: #f7f6ef; border: 1px solid #dfdfd2; border-radius: 6px; }
.callback-extra summary { padding: 15px 16px; color: #355b44; font-size: 14px; line-height: 1.5; }
.callback-extra[open] summary { border-bottom-color: #dfdfd2; }
.callback-extra-content { padding: 17px; }
.callback-extra-content > .form-help { margin-bottom: 17px; }
.callback-extra-content .form-group:last-child { margin-bottom: 0; }
.upload-text { font-size: 12px; line-height: 1.6; color: #6b7366; }
.quote-form input[type="file"] { border: 1px dashed #bcbca6; background: #fcfaf4; padding: 11px; font-size: 12px; }
.quote-form input[type="file"]::file-selector-button { max-width: 100%; margin-right: 8px; padding: 8px; border: 1px solid #ced2c2; border-radius: 4px; background: #e9edde; color: #314b39; cursor: pointer; }
.quote-form .checkbox-item { padding: 0; background: transparent; gap: 10px; font-size: 12px; line-height: 1.6; }
.quote-form .checkbox-item input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--green-950); }
.checkbox-item a, .form-help a { color: #8b5c22; }
.form-button { margin-top: 3px; min-height: 50px; }
.quote-alternative { margin-top: 15px; color: #6a7467; font-size: 12px; line-height: 1.65; }
.quote-alternative a { display: inline-block; color: #31573f; }

.contact { padding: 56px var(--page-gutter) 61px; background: var(--paper); }
.contact-container { max-width: 1200px; }
.contact-header { max-width: 720px; margin: 0 auto 30px; }
.contact-header h2 { color: var(--green-950); margin-bottom: 11px; font-size: 32px; line-height: 1.25; letter-spacing: -.6px; }
.contact-header p { color: var(--muted); font-size: 15px; }
.contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.contact-card { display: flex; flex-direction: column; align-items: center; padding: 25px 22px; border: 1px solid #ccdabb; border-radius: 8px; background: var(--sage); }
.contact-card:nth-child(2) { background: #f3e6d1; border-color: #e2d1b3; }
.contact-card:nth-child(3) { background: #285447; border-color: #285447; }
.contact-card:hover { transform: none; box-shadow: 0 5px 17px #33463308; }
.contact-icon { margin-bottom: 13px; color: #a17031; }
.contact-icon .line-icon { width: 30px; height: 30px; }
.contact-card h3 { margin-bottom: 8px; color: var(--green-950); font-size: 18px; }
.contact-card p { width: 100%; margin-bottom: 17px; color: #405545; font-size: 14px; }
.contact-btn { margin-top: auto; min-height: 42px; padding: 9px 17px; font-size: 13px; background: #173e33; color: #fffdf8; }
.contact-card:nth-child(3) h3 { color: #fffdf8; }
.contact-card:nth-child(3) p { color: #e2ebe0; }
.contact-card:nth-child(3) .contact-icon { color: #e9c990; }
.contact-card:nth-child(3) .contact-btn { color: #173e33; background: #f5ecd8; }
.contact-card:nth-child(3) .contact-btn:hover, .contact-card:nth-child(3) .contact-btn:focus-visible { color: #173e33; background: #fff9ea; }
.contact-card:nth-child(3) a:focus-visible { outline-color: #f5d394; }

.site-footer { padding: 42px var(--page-gutter) 24px; background: #123b30; color: #dbe6db; }
.footer-grid { grid-template-columns: 1.2fr .85fr 1fr; gap: 60px; max-width: 1200px; margin-bottom: 31px; }
.footer-logo { width: min(100%, 240px); max-height: 135px; object-fit: contain; object-position: left; margin-bottom: 10px; filter: none; }
.footer-about { max-width: 310px; color: #b5c8bc; font-size: 13px; }
.footer-heading { color: #ddbd84; font-size: 11px; letter-spacing: 1.1px; }
.footer-links, .footer-contact { gap: 7px; font-size: 13px; }
.site-footer a { color: #dce7db; }
.footer-bottom { color: #a0b9a8; font-size: 12px; border-top-color: #ffffff1a; }
.site-footer .workshop-login-link { margin-left: 13px; padding-left: 13px; color: #ddbd84; }

/* Keep the existing functional visibility states authoritative. */
.mobile-quote-cta[hidden], .mobile-quote-cta.is-hidden { display: none; }
body:has(.quote-form :focus) .mobile-quote-cta { visibility: hidden; }
body.lightbox-open .mobile-quote-cta { visibility: hidden; }

@media (min-width: 1600px) {
  .hero { min-height: 650px; background-position: center, center 54%; }
}

@media (max-width: 1180px) {
  header { min-height: 83px; gap: 18px; }
  header nav { gap: 16px; }
  header nav a { font-size: 13px; }
  .logo .logo-name { font-size: 18px; }
  .logo .logo-service { font-size: 8px; }
  .logo-mark { width: 46px; height: 46px; }
  .cutting-quick-inner { gap: 20px; }
  .cutting-quick-actions { gap: 11px; }
  .process-container { gap: 32px; grid-template-columns: minmax(220px, .8fr) minmax(0, 2fr); }
  .process-steps { gap: 15px; }
  .quote-container { gap: 37px; }
}

@media (max-width: 1040px) {
  header { min-height: 81px; flex-direction: row; }
  .menu-toggle { display: flex; align-items: center; justify-content: center; }
  header nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; padding: 12px 24px 22px; gap: 0; align-items: stretch; flex-direction: column; border-bottom: 1px solid #ddd8ca; background: #fcfaf6; box-shadow: 0 8px 14px #173e330b; }
  header nav.active { display: flex; }
  header nav a { margin: 0; padding: 13px 8px; font-size: 15px; text-align: left; }
  header nav .nav-cutting { width: 100%; margin: 0 0 8px; text-align: center; }
  header nav .nav-cta { margin: 8px 0 0; text-align: center; }
  .hero { min-height: 574px; padding-top: 51px; padding-bottom: 46px; background-image: linear-gradient(90deg, #f8f4eb 0%, #f8f4ebf2 29%, #f8f4ebb5 49%, #f8f4eb05 80%), url("konyhabutor-hero.webp"); }
  .hero h1 { max-width: 535px; font-size: 55px; }
  .hero p { max-width: 490px; font-size: 17px; }
  .hero-proof { max-width: 570px; gap: 8px 20px; }
  .cutting-quick-inner { align-items: flex-start; }
  .cutting-quick-actions { flex-direction: column; align-items: flex-start; gap: 10px; }
  .kitchen-project { grid-template-columns: minmax(0, 1fr); row-gap: 18px; }
  .kitchen-project-title { display: flex; align-items: flex-start; gap: 12px; }
  .kitchen-project-number { flex: 0 0 35px; margin-bottom: 0; }
  .kitchen-pair { grid-column: 1; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr); }
  .kitchen-project--grey .kitchen-pair { grid-template-columns: minmax(0, 4fr) minmax(0, 3fr); }
  .kitchen-project--grey .kitchen-pair figure:last-child .showcase-image { max-width: none; }
  .furniture-types { gap: 15px; }
  button.type .type-title { font-size: 19px; }
  button.type .type-description { font-size: 11px; }
  .process-container { display: block; }
  .process-header { max-width: 700px; margin-bottom: 32px; }
  .process-header h2 { max-width: 570px; }
  .process-steps { gap: 27px; }
  .process-step h3 { font-size: 18px; }
  .quote-container { gap: 30px; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
  .quote-header h2 { font-size: 34px; }
  .quote-header p { font-size: 15px; }
  .quote-form { padding: 23px; }
  .quote-form .form-row { grid-template-columns: 1fr; gap: 0; }
  .footer-grid { gap: 32px; }
  .footer-main { grid-column: auto; }
}

@media (max-width: 760px) {
  :root { --page-gutter: 22px; }
  .hero { min-height: 590px; background-image: linear-gradient(90deg, #f8f4ebf7 0%, #f8f4ebde 43%, #f8f4eb80 76%, #f8f4eb57 100%), url("konyhabutor-hero.webp"); background-position: center, 62% center; }
  .hero h1 { font-size: clamp(43px, 7.4vw, 54px); letter-spacing: -1.8px; }
  .hero p { max-width: 470px; }
  .hero-proof { max-width: 470px; }
  .cutting-quick-inner { display: block; }
  .cutting-quick h2 { font-size: 20px; }
  .cutting-quick-actions { flex-direction: row; align-items: center; flex-wrap: wrap; margin-top: 17px; gap: 15px; }
  .kitchen-showcase, .furniture { padding-top: 44px; }
  .kitchen-showcase { padding-bottom: 42px; }
  .showcase-heading h2 { font-size: 33px; }
  .showcase-heading p { font-size: 15px; }
  .kitchen-project { padding: 18px; }
  .kitchen-project h3 { font-size: 20px; }
  .kitchen-project-title { align-items: flex-start; }
  .kitchen-project-number { padding-top: 0; }
  .kitchen-pair, .kitchen-project--grey .kitchen-pair { grid-template-columns: 1fr; gap: 21px; }
  .kitchen-pair .showcase-label { min-height: 30px; }
  .kitchen-project--grey .kitchen-pair figure:last-child .showcase-image { max-width: none; margin-inline: auto; }
  .kitchen-detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .showcase-footer h3 { font-size: 20px; }
  .furniture-types { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .intro h2 { font-size: 32px; }
  button.type .type-title { font-size: 20px; }
  button.type .type-description { font-size: 12px; }
  .references { padding-bottom: 40px; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-item img { height: 215px; }
  .process { padding-top: 45px; padding-bottom: 35px; }
  .process-header h2 { font-size: 31px; }
  .process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
  .process-steps::before { display: none; }
  .step-number { margin-bottom: 10px; }
  .quote-section { padding-top: 42px; padding-bottom: 43px; }
  .quote-section::before { height: 430px; background-image: linear-gradient(180deg, #f4eddf 0%, #f7f2e7bf 35%, #f7f2e759 100%), url("quote-atmosphere-v1.webp"); }
  .quote-container { grid-template-columns: 1fr; gap: 27px; }
  .quote-header { padding-top: 0; }
  .quote-header h2 { max-width: 560px; font-size: 35px; }
  .quote-header p { max-width: 570px; font-size: 16px; }
  .quote-form { padding: 27px; }
  .quote-form .form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .contact { padding-top: 43px; padding-bottom: 43px; }
  .contact-header h2 { font-size: 30px; }
  .contact-grid { grid-template-columns: 1fr; gap: 13px; }
  .contact-card { padding: 23px; }
  .contact-card p { max-width: 390px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 31px; }
  .footer-main { grid-column: 1 / -1; }
  .footer-logo { max-height: 110px; }
  .footer-bottom { flex-direction: column; gap: 8px; }
}

@media (max-width: 600px) {
  :root { --page-gutter: 20px; }
  body { padding-bottom: 76px; }
  header { min-height: 77px; padding: 13px 18px; gap: 12px; }
  .logo { gap: 8px; }
  .logo-mark { width: 44px; height: 44px; }
  .logo .logo-name { font-size: 16px; letter-spacing: .25px; }
  .logo .logo-service { display: block; font-size: 7px; letter-spacing: .75px; }
  section[id], .reference-container { scroll-margin-top: 96px; }
  .hero { min-height: 650px; padding: 45px var(--page-gutter) 40px; text-align: left; background-image: linear-gradient(180deg, #f8f4ebed 0%, #f8f4ebdf 38%, #f8f4ebc4 72%, #f8f4eb70 100%), url("konyhabutor-hero.webp"); background-position: center, 60% center; }
  .hero-eyebrow, .hero-actions, .hero-proof { justify-content: flex-start; }
  .hero-eyebrow { margin-bottom: 18px; font-size: 10px; letter-spacing: 1.15px; }
  .hero-eyebrow::before { width: 23px; }
  .hero h1 { font-size: clamp(35px, 9.9vw, 54px); letter-spacing: -1.7px; line-height: 1.1; }
  .hero p { margin: 22px 0; font-size: 16px; line-height: 1.6; }
  .hero-actions { gap: 10px; }
  .hero-actions .btn { width: 100%; padding: 13px 14px; font-size: 14px; }
  .hero .hero-note, .hero .hero-reassurance { margin-top: 12px; font-size: 12px; }
  .hero-proof { display: flex; flex-wrap: wrap; justify-items: start; gap: 8px 18px; margin-top: 20px; font-size: 12px; }
  .hero-proof li::before { font-size: 18px; }
  .cutting-quick { padding-top: 23px; padding-bottom: 23px; }
  .cutting-quick p { font-size: 13px; }
  .cutting-quick-actions { gap: 13px; }
  .cutting-quick .btn { width: 100%; }
  .cutting-quick .card-detail-link, .cutting-quick .text-link { margin: 0 auto; }
  .showcase-heading h2, .intro h2 { font-size: 30px; line-height: 1.2; }
  .kitchen-project { padding: 14px; }
  .kitchen-project-title { gap: 9px; margin-bottom: 0; }
  .kitchen-project h3 { font-size: 18px; }
  .kitchen-project-title p { font-size: 12px; }
  .kitchen-pair .showcase-label { font-size: 12px; }
  .kitchen-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
  .kitchen-details summary { font-size: 13px; }
  .showcase-footer .btn { width: 100%; }
  .furniture { padding-bottom: 29px; }
  .furniture-types { gap: 12px; }
  button.type .type-copy { padding: 12px 11px; column-gap: 6px; row-gap: 7px; }
  button.type .type-title { font-size: clamp(14px, 3.8vw, 16px); letter-spacing: -.35px; }
  button.type .type-description { font-size: 11px; line-height: 1.4; }
  .reference-heading h2 { font-size: 25px; }
  .reference-heading p { font-size: 14px; }
  .gallery { gap: 12px; }
  .gallery-item img { height: 180px; }
  .empty-reference { padding: 28px 20px; }
  .empty-reference h3 { font-size: 22px; }
  .empty-reference p { font-size: 14px; }
  .process-header h2 { font-size: 30px; }
  .process-header p { font-size: 15px; }
  .process-steps { gap: 25px 21px; }
  .process-step h3 { font-size: 17px; }
  .process-step p { font-size: 12px; }
  .customer-reviews { padding-bottom: 34px; }
  .customer-reviews h2 { font-size: 21px; }
  .quote-header h2 { font-size: 31px; }
  .quote-header p { font-size: 15px; }
  .quote-form { padding: 21px 18px; }
  .quote-form .form-row { grid-template-columns: 1fr; gap: 0; }
  .request-intro { font-size: 13px; }
  .callback-extra summary { padding: 14px 12px; font-size: 13px; }
  .callback-extra-content { padding: 14px 12px; }
  .contact-header h2 { font-size: 28px; }
  .contact-header p { font-size: 14px; }
  .site-footer { padding-top: 34px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-main { grid-column: auto; }
  .site-footer .workshop-login-link { display: block; width: fit-content; margin: 10px 0 0; padding: 0; border-left: 0; }
  .mobile-quote-cta { min-height: 50px; right: 12px; left: 12px; bottom: max(10px, env(safe-area-inset-bottom)); background: var(--green-950); color: #fffdf8; border: 1px solid #ffffff66; border-radius: 7px; box-shadow: 0 7px 25px #173e3326; font-size: 15px; }
  .mobile-quote-cta:hover, .mobile-quote-cta:focus-visible { background: var(--green-800); }
  .lightbox { padding: 17px; }
  .lightbox-close { right: 12px; top: 14px; }
}

@media (max-width: 360px) {
  :root { --page-gutter: 16px; }
  header { padding-inline: 14px; }
  .logo-mark { width: 38px; height: 38px; }
  .logo .logo-name { font-size: 14px; }
  .logo .logo-service { font-size: 6px; letter-spacing: .65px; }
  .hero h1 { font-size: 33px; letter-spacing: -1.55px; }
  .hero-eyebrow { font-size: 9px; }
  .furniture-types { grid-template-columns: 1fr; }
  button.type .type-copy { padding: 14px 16px; }
  button.type .type-title { font-size: 22px; }
  button.type .type-description { font-size: 12px; }
  .gallery { grid-template-columns: 1fr; }
  .process-steps { grid-template-columns: 1fr; }
  .gallery-item img { height: 220px; }
  .quote-form { padding: 20px 14px; }
}
