/* Warm, readable styling shared by all four pages. */
:root {
    --color-primary: #173f32;
    --color-secondary: #edf3eb;
    --color-accent: #326344;
    --color-text: #303d35;
    --color-gold: #ae8148;
    --color-cream: #faf7f1;
}
body { background: var(--color-cream); }
.about-section h1, .services-section h1, .contact-section h1 { line-height: 1.25; }
header { padding: 1rem max(5%, calc((100% - 1240px) / 2)); box-shadow: none; border-bottom: 1px solid #e5e5da; gap: 1.5rem; }
header .logo { color: var(--color-primary); font-size: 1.15rem; white-space: nowrap; }
header .logo img { height: 90px; width: 90px; object-fit: contain; border-radius: 50%; }
nav a { font-weight: 600; font-size: .9rem; }
nav a.active { text-decoration: underline; text-underline-offset: 8px; text-decoration-color: var(--color-gold); }
.btn { border-radius: 9px; padding: 14px 24px; background: var(--color-primary); line-height: 1.5; }
.btn:hover { background: #326344; }
.header-contact-btn { border-color: var(--color-primary); background: transparent; }
.header-contact-btn:hover { background: var(--color-primary); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 5px; }
.hero { background: none; height: auto; min-height: 620px; max-width: 1240px; margin: auto; padding: 4rem 2rem 5rem; display: grid; grid-template-columns: 1.05fr 1fr; gap: 4rem; color: var(--color-text); text-align: left; }
.hero .eyebrow { color: #72603f; font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 1.4rem; }
.hero h1 { color: var(--color-primary); text-shadow: none; font-size: clamp(2.2rem, 3.6vw, 3.4rem); line-height: 1.18; letter-spacing: -.045em; margin-bottom: 1.5rem; }
.hero-copy > p:not(.eyebrow) { font-size: 1.05rem; line-height: 1.85; max-width: 33rem; color: #566057; }
.hero-actions { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.text-link { color: var(--color-primary); font-size: .9rem; font-weight: 600; text-underline-offset: 5px; }
.text-link span { margin-left: .4rem; }
.hero-values { display: flex; gap: 1.2rem; flex-wrap: wrap; margin-top: 2rem; font-size: .76rem; color: #596052; }
.hero-values span::before { content: '✓'; margin-right: .5rem; color: var(--color-accent); }
.hero-visual { position: relative; margin: 0; padding-bottom: 1rem; }
.hero-visual img { display: block; width: 100%; height: 470px; object-fit: cover; border-radius: 45% 45% 18px 18px; }
.hero-visual figcaption { position: absolute; bottom: 0; left: 1rem; right: 1rem; padding: 1rem; background: #fffdf7; border: 1px solid #e5d6bc; border-radius: 12px; color: var(--color-primary); text-align: center; font-size: .85rem; box-shadow: 0 10px 25px #173f3210; }
.benefits-section { padding: 4.5rem 5%; background: #edf3eb; }
.benefits-header h2, .cta-section h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.3; }
.benefit-card { border-left: none; border-top: 3px solid #c2a273; border-radius: 14px; box-shadow: none; }
.benefit-card:hover, .service-card:hover { transform: none; box-shadow: 0 8px 24px #173f3210; }
.benefit-number { background: var(--color-primary); width: 48px; height: 48px; font-size: 1.1rem; box-shadow: none; }
.about-section, .contact-section { margin: 0 auto; padding-top: 4rem; padding-bottom: 4rem; }
.about-content { align-items: flex-start; }
.about-image { position: sticky; top: 2rem; }
.about-image img { border-radius: 18px; box-shadow: none; }
.about-text { flex: 1.35; }
.about-text h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.35; }
.certificates-section { border: 1px solid #dce5d6; }
.information-section { margin: 4rem 0; }
.information-intro { max-width: 660px; margin-bottom: 2rem; }
.information-intro .eyebrow { font-size: .75rem; color: #72603f; text-transform: uppercase; letter-spacing: .09em; margin-bottom: .75rem; }
.information-intro h2 { color: var(--color-primary); font-size: 2rem; margin-bottom: 1rem; }
.information-intro > p:last-child { color: #505b53; line-height: 1.8; }
.information-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.information-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e5dccb; border-radius: 16px; overflow: hidden; color: var(--color-primary); text-decoration: none; }
.information-card > img { width: 100%; height: 350px; object-fit: contain; background: #f7f2e9; padding: 1rem; }
.information-card > span { padding: 1.25rem; font-weight: 600; font-size: .95rem; display: flex; justify-content: space-between; gap: 1rem; }
.information-card:hover { border-color: var(--color-gold); }
.service-card > .planning-photo { max-height: none; height: auto; min-height: 0; object-fit: contain; }
.services-grid { grid-template-columns: 1fr; gap: 2.5rem; }
.service-card { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); border: 1px solid #e5e4d9; border-radius: 18px; box-shadow: none; align-items: start; }
.service-card > img { height: 100%; min-height: 340px; max-height: 540px; display: block; object-fit: cover; }
.service-card-content { padding: clamp(1.5rem, 3vw, 2.6rem); }
.service-card-content h3 { font-size: 1.65rem; line-height: 1.3; margin-bottom: 1.4rem; }
.service-card-content p { font-size: 1rem; line-height: 1.85; color: #505b53; }
.service-card-content p strong { color: var(--color-primary); font-weight: 600; }
.contact-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; gap: 1.5rem; }
.contact-option { min-width: 0; background: white; border: 1px solid #e3e5d9; padding: 2rem; border-radius: 16px; box-shadow: none; }
.contact-option a { overflow-wrap: anywhere; color: var(--color-primary); }
.contact-time { color: #626b61; }
.contact-icon { font-size: 2.2rem; }
.cta-section { background: linear-gradient(90deg, #123d32ed, #123d32d9), url('2.jpeg') center/cover; padding: 4rem 6%; }
.cta-section p { font-size: 1rem; max-width: 640px; margin: 1rem auto 1.8rem; }
.cta-section .btn { background: #f4e6cd; color: #173f32; }
.cta-section .btn:hover { background: white; }
footer { background: #10352a; }
.footer-content { gap: 3rem; }
.footer-column a { color: inherit; text-underline-offset: 4px; overflow-wrap: anywhere; }
.footer-column h4 { color: #f4e6cd; }
.footer-column li { line-height: 1.7; }
@media (max-width: 1000px) {
    header { flex-direction: column; gap: .4rem; }
    .hero { gap: 2rem; }
}
@media (max-width: 900px) {
    .about-image { position: static; width: 100%; }
    .about-image img { max-width: none; max-height: 430px; object-fit: cover; }
    .service-card { grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); }
}
@media (max-width: 680px) {
    header { padding: .6rem 1rem 1rem; }
    header .logo img { height: 70px; width: 70px; }
    .information-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .information-card > img { height: 310px; }
    nav ul { gap: .65rem 1rem; }
    nav .header-contact-btn { display: none; }
    .hero { grid-template-columns: 1fr; padding: 2.5rem 1.25rem 3rem; gap: 2rem; min-height: 0; }
    .hero h1 { font-size: clamp(2rem, 8vw, 2.8rem); }
    .hero .eyebrow { font-size: .68rem; letter-spacing: .07em; }
    .hero-copy > p:not(.eyebrow) { font-size: 1rem; }
    .hero-visual img { height: 330px; object-position: center 35%; border-radius: 26px 26px 12px 12px; }
    .hero-visual figcaption { font-size: .78rem; }
    .hero-values { gap: .6rem 1rem; font-size: .72rem; }
    .benefits-grid { gap: 2.4rem; }
    .benefits-header { margin-bottom: 3rem; }
    .about-section, .services-section, .contact-section { padding: 2.5rem 1.25rem; }
    .about-section h1, .services-section h1, .contact-section h1 { font-size: 2rem; margin-bottom: 1.5rem; }
    .about-content { gap: 2rem; }
    .services-section .subtitle, .contact-section .subtitle { margin-bottom: 2rem; font-size: 1rem; }
    .service-card { grid-template-columns: minmax(0, 1fr); }
    .service-card > img { height: 235px; min-height: 0; }
    .service-card-content { padding: 1.5rem; }
    .service-card-content h3 { font-size: 1.5rem; }
    .contact-options { grid-template-columns: minmax(0, 1fr); }
    .contact-option { padding: 1.7rem 1.25rem; }
    .cta-section { padding: 3rem 1.25rem; }
    .footer-content { gap: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Language controls use local flag images so they also display on Windows. */
.header-tools { display: flex; align-items: center; gap: 1.25rem; min-width: 0; }
.language-picker { flex: 0 0 auto; font-size: .8rem; }
.language-desktop, .language-options { display: flex; gap: .25rem; }
.language-link { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 44px; padding: .55rem .65rem; border-radius: 8px; color: var(--color-primary); font-weight: 600; text-decoration: none; white-space: nowrap; }
.language-link:hover { background: #e4ecdf; color: var(--color-primary); }
.language-link[aria-current="true"] { background: var(--color-secondary); box-shadow: inset 0 0 0 1px #b6c9b4; }
.language-flag { display: inline-block; width: 24px; height: 16px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px #173f3226; }
.language-mobile { display: none; position: relative; }
.language-mobile summary { display: flex; align-items: center; justify-content: center; gap: .5rem; min-width: 86px; min-height: 44px; padding: .55rem .7rem; list-style: none; cursor: pointer; border: 1px solid #b6c9b4; border-radius: 9px; background: white; }
.language-mobile summary::-webkit-details-marker { display: none; }
.language-mobile summary:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 4px; }
.language-mobile[open] summary { background: var(--color-secondary); }
.language-mobile .language-options { position: absolute; right: 0; top: calc(100% + .5rem); min-width: 170px; padding: .5rem; flex-direction: column; background: #fffdf7; border: 1px solid #dce5d6; border-radius: 12px; box-shadow: 0 10px 30px #173f3226; z-index: 1100; }
.language-mobile .language-link { justify-content: flex-start; }
.footer-column li > a { display: inline-block; padding: .4rem 0; text-decoration: none; }
.complaint-open { border: 0; background: none; color: var(--color-primary); font: inherit; font-size: 1.1rem; font-weight: 600; cursor: pointer; padding: .6rem; margin: .4rem 0; min-height: 44px; }
.document-language-note { font-size: .9rem; color: #566057; margin-top: 1rem; }
.page-section[hidden] { display: none; }
@media (min-width: 1001px) and (max-width: 1300px) {
    header { padding-left: 3%; padding-right: 3%; gap: 1rem; }
    .header-tools { gap: .75rem; }
    nav ul { gap: 1rem; }
    nav .header-contact-btn { display: none; }
}
@media (max-width: 1000px) {
    .header-tools { flex-wrap: wrap; justify-content: center; gap: .35rem 1rem; }
    nav a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 680px) {
    header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .25rem .5rem; }
    header .logo { font-size: .95rem; gap: .4rem; }
    header .logo img { width: 58px; height: 58px; }
    .header-tools { display: contents; }
    .header-tools > nav { grid-column: 1 / -1; grid-row: 2; width: 100%; }
    .language-picker { grid-column: 2; grid-row: 1; }
    .language-desktop { display: none; }
    .language-mobile { display: block; }
    nav ul { gap: .2rem .7rem; padding: .25rem 0 0; }
    nav a { font-size: .82rem; }
    .modal-box { padding: 2.75rem 1.25rem 1.5rem; }
    .modal-actions { flex-direction: column; }
    .modal-actions button { width: 100%; }
    .form-group input, .form-group textarea { font-size: 16px; }
    .cert-buttons .btn { max-width: 100%; overflow-wrap: anywhere; }
}
@media (max-width: 360px) {
    header { padding-left: .65rem; padding-right: .65rem; }
    header .logo { font-size: .85rem; }
    header .logo img { width: 48px; height: 48px; }
    .language-mobile summary { min-width: 78px; gap: .35rem; }
}
