:root { color-scheme:light; --ink:#242b30; --ink-soft:#596268; --navy:#202a30; --navy-2:#303b41; --paper:#f3f5f5; --white:#fff; --line:#dde3e5; --red:#a62536; --red-dark:#801c2a; --red-button:#a62536; --red-button-hover:#801c2a; --red-soft:#f4c6cb; --shadow:0 12px 36px rgba(32,42,48,.07); --sans:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif; --serif:var(--sans); --radius:16px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:7rem; }
body { margin:0; color:var(--ink); background:var(--white); font-family:var(--sans); font-size:1rem; line-height:1.65; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration-thickness:.08em; text-underline-offset:.18em; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #c24452; outline-offset:4px; }
.container { width:min(1240px,calc(100% - 5rem)); margin-inline:auto; }
.narrow-content { width:min(780px,calc(100% - 3rem)); }
.eyebrow { display:inline-flex; align-items:center; gap:.7rem; color:var(--red); font-size:.74rem; font-weight:650; letter-spacing:.06em; line-height:1.6; }
.eyebrow::before { display:inline-block; width:1.45rem; height:1px; background:currentColor; content:""; }
h1,h2,h3,p,figure { margin-top:0; }
h1,h2 { font-family:var(--sans); font-weight:550; letter-spacing:-.045em; line-height:1.15; text-wrap:balance; }
h1 { font-size:clamp(2.5rem,4.5vw,4.2rem); }
h2 { font-size:clamp(1.9rem,3.1vw,2.7rem); }
h3 { font-size:1.13rem; line-height:1.35; }
p { color:var(--ink-soft); }
.skip-link { position:absolute; z-index:1000; top:.5rem; left:.5rem; transform:translateY(-150%); padding:.7rem 1rem; color:var(--white); background:var(--navy); }
.skip-link:focus { transform:none; }
.utility-bar { color:var(--ink-soft); background:var(--paper); font-size:.75rem; border-bottom:1px solid var(--line); }
.utility-inner,.utility-links { display:flex; align-items:center; }
.utility-inner { min-height:2.25rem; justify-content:space-between; gap:1rem; }
.utility-inner a { color:inherit; text-decoration:none; }
.utility-inner a:hover { color:var(--red); }
.utility-links { gap:1.5rem; }
.site-header { position:sticky; z-index:50; top:0; background:rgba(255,255,255,.97); border-bottom:1px solid rgba(23,35,44,.08); backdrop-filter:blur(12px); }
.header-inner { display:flex; align-items:center; justify-content:space-between; min-height:5rem; gap:2rem; }
.brand { display:block; width:12.5rem; flex:0 0 auto; }
.brand picture { display:block; }
.brand img,.footer-brand img { width:100%; height:auto; }
.site-nav { display:flex; align-items:center; gap:clamp(.9rem,2vw,1.8rem); }
.nav-link,.nav-contact { display:inline-flex; align-items:center; min-height:2.8rem; color:var(--ink); font-size:.87rem; font-weight:650; text-decoration:none; white-space:nowrap; }
.nav-link:hover { color:var(--red); }
.nav-contact { gap:1.25rem; padding:0 1.3rem; color:#fff; background:var(--red-button); border-radius:8px; transition:background .2s ease,transform .2s ease; }
.nav-contact:hover { background:var(--red-button-hover); transform:translateY(-1px); }
.nav-group { position:relative; display:flex; align-items:center; gap:.35rem; }
.submenu-toggle { display:grid; width:1.6rem; height:2rem; place-items:center; border:0; color:var(--ink); background:transparent; cursor:pointer; }
.submenu { position:absolute; z-index:5; top:calc(100% + .6rem); left:-.75rem; display:none; width:19rem; padding:.6rem; background:var(--white); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); }
.submenu a { display:flex; justify-content:space-between; gap:.8rem; padding:.65rem .7rem; text-decoration:none; }
.submenu a:hover,.submenu a:focus-visible { background:var(--paper); }
.submenu small { color:var(--red); font-size:.73rem; white-space:nowrap; }
.nav-group:hover .submenu,.nav-group:focus-within .submenu,.nav-group.is-open .submenu { display:block; }
.nav-toggle { display:none; }
.hero { overflow:hidden; padding:1.5rem 0 3rem; background:var(--white); }
.hero-grid { position:relative; display:grid; grid-template-columns:minmax(0,1fr); align-items:stretch; width:min(1600px,calc(100% - 3rem)); min-height:36rem; border-radius:20px; overflow:hidden; background:#202a30; }
.hero-copy { position:relative; z-index:2; display:flex; width:60%; flex-direction:column; align-items:flex-start; justify-content:center; padding:3.5rem clamp(2rem,4.5vw,5rem); color:#fff; }
.hero-copy .eyebrow { color:#f4c6cb; }
.hero-copy h1 { max-width:100%; margin:1.4rem 0 1.6rem; color:#fff; font-size:clamp(2.8rem,4.15vw,4rem); line-height:1.12; }
.hero-lead { max-width:27rem; margin-bottom:2rem; color:#e0e5e7; font-size:1.06rem; line-height:1.8; }
.hero-actions { display:flex; align-items:flex-start; flex-direction:column; gap:1.2rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.85rem; min-height:3.35rem; padding:.85rem 1.5rem; border:1px solid transparent; border-radius:8px; font-size:.9rem; font-weight:650; text-align:center; text-decoration:none; transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease; }
.button:hover { transform:translateY(-2px); }
.button:active,.nav-contact:active { transform:translateY(1px) scale(.99); }
.button-primary { color:#fff; background:var(--red-button); }
.button-primary:hover { background:var(--red-button-hover); }
.button-light { color:var(--navy); background:var(--white); }
.button-light:hover { background:var(--paper); }
.button-outline { color:var(--ink); background:transparent; border-color:#9ba2a3; }
.button-outline:hover { color:var(--white); background:var(--navy); border-color:var(--navy); }
.text-link { display:inline-flex; align-items:center; gap:.6rem; color:var(--red); font-size:.9rem; font-weight:700; text-decoration:none; }
.text-link:hover { color:var(--red-dark); text-decoration:underline; }
.text-link-light { color:#f4c6cb; }
.text-link-light:hover { color:#fff; }
.hero-image-wrap { position:absolute; top:0; right:0; width:68%; height:100%; min-height:0; overflow:hidden; background:#29343a; }
.hero-image { width:100%; height:100%; object-fit:cover; object-position:52% 52%; }
.hero-image-wrap::after { position:absolute; inset:0; background:linear-gradient(90deg,#202a30 0%,rgba(32,42,48,.96) 4%,rgba(32,42,48,.55) 28%,rgba(32,42,48,0) 60%),linear-gradient(0deg,rgba(17,26,31,.65),transparent 30%); content:""; }
.hero-caption { position:absolute; z-index:1; right:2rem; bottom:1.5rem; left:48%; display:flex; justify-content:space-between; gap:1rem; color:#f3f5f5; font-size:.7rem; letter-spacing:.02em; }
.section { padding:clamp(3.5rem,6vw,5.5rem) 0; }
.section-soft { background:var(--paper); }
.section-intro { padding-top:2rem; padding-bottom:5rem; }
.intro-content { max-width:1240px; display:grid; grid-template-columns:1fr 1fr; gap:4rem; }
.intro-content h2 { max-width:22ch; margin:0; }
.intro-text { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1.2rem; }
.intro-text p { max-width:40rem; margin:0; font-size:1rem; }
.about-grid,.map-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(2.5rem,6vw,6rem); }
.about-copy h2,.map-copy h2 { max-width:23ch; margin:0; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.5rem; }
.section-heading h2 { max-width:24ch; margin:0 0 .65rem; }
.section-heading p { margin-bottom:0; }
.feature-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); grid-template-rows:1fr 1fr; gap:1.2rem; counter-reset:steps; }
.feature-card { position:relative; min-height:10rem; padding:1.8rem 2rem 1.8rem 5rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); counter-increment:steps; }
.feature-card::before { position:absolute; top:1.8rem; left:1.8rem; content:"0" counter(steps); color:var(--red); font-size:.8rem; font-weight:650; }
.feature-card:first-child { grid-row:1/3; display:flex; flex-direction:column; justify-content:flex-end; padding:5rem 2rem 2rem; background:var(--navy); color:#f3f5f5; border-color:var(--navy); }
.feature-card:first-child p { color:#d3dcdf; }
.feature-card:first-child::before { color:#f4c6cb; }
.feature-card:first-child::before { font-size:2.7rem; letter-spacing:-.05em; }
.feature-card+.feature-card { border-left:1px solid var(--line); }
.feature-card h3 { margin-bottom:.7rem; font-family:var(--sans); font-size:1.3rem; font-weight:600; letter-spacing:-.025em; }
.feature-card p { max-width:26rem; margin-bottom:0; }
.country-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; }
.country-card { display:flex; min-height:11rem; flex-direction:column; align-items:flex-start; padding:1.5rem; border:1px solid var(--line); border-radius:12px; background:var(--white); text-decoration:none; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.country-card:hover { border-color:var(--red); background:var(--paper); transform:translateY(-3px); }
.country-name { font-family:var(--sans); font-size:1.15rem; font-weight:600; letter-spacing:-.025em; }
.country-price { margin-top:.75rem; color:var(--red); font-size:1.05rem; font-weight:650; }
.country-link { display:inline-flex; gap:.45rem; margin-top:auto; padding-top:.7rem; color:var(--red); font-size:.78rem; }
.country-grid-compact { grid-template-columns:repeat(3,minmax(0,1fr)); margin:1.5rem 0; border-top:0; }
.country-grid-compact .country-card { min-height:10rem; }
.map-section { background:var(--paper); }
.map-copy p { max-width:33rem; margin:1.2rem 0 1.7rem; }
.map-figure { margin:0; padding:1.3rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); }
.map-figure img { width:100%; aspect-ratio:16/9; object-fit:contain; }
.map-figure figcaption { padding:.55rem .3rem .1rem; color:var(--ink-soft); font-size:.72rem; }
.about-image { position:relative; }
.about-image::before { position:absolute; z-index:0; bottom:-.75rem; right:-.75rem; width:40%; height:40%; border-radius:var(--radius); background:var(--line); content:""; }
.about-image img { position:relative; z-index:1; width:100%; aspect-ratio:1.25; object-fit:cover; border-radius:var(--radius); }
.about-copy h2 { max-width:22ch; }
.about-copy p { margin:1rem 0; }
.about-copy .text-link { margin-top:.5rem; }
.page-hero { padding:2rem 0 3.5rem; background:var(--paper); border-bottom:1px solid var(--line); }
.page-hero h1 { max-width:30ch; margin:1.2rem 0 1.4rem; font-size:clamp(2.3rem,4.2vw,3.5rem); }
.page-lead { max-width:54rem; margin:0; font-size:1.08rem; }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin-bottom:2.4rem; color:var(--ink-soft); font-size:.76rem; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs a:hover { color:var(--red); }
.narrow-content { padding-top:4.5rem; padding-bottom:4.5rem; }
.article-section { margin-bottom:3rem; }
.article-section h2 { margin-bottom:1rem; font-size:clamp(1.5rem,2.5vw,2rem); letter-spacing:-.035em; }
.article-section p { font-size:1.02rem; }
.article-section a { color:var(--red); }
.check-list { display:grid; gap:.75rem; padding:0; margin:1.2rem 0; list-style:none; }
.check-list li { position:relative; padding-left:1.6rem; color:var(--ink-soft); }
.check-list li::before { position:absolute; top:.66rem; left:.15rem; width:.38rem; height:.38rem; border-radius:50%; background:var(--red); content:""; }
.service-photo { margin:3rem 0; }
.service-photo img { width:100%; max-height:32rem; object-fit:cover; border-radius:var(--radius); }
.service-photo span { display:block; padding-top:.6rem; color:var(--ink-soft); font-size:.75rem; }
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); }
table { width:100%; border-collapse:collapse; text-align:left; }
caption { padding:1rem 1.3rem; color:var(--ink-soft); background:var(--paper); font-size:.85rem; text-align:left; }
th,td { padding:1rem 1.3rem; border-top:1px solid var(--line); }
thead th { color:var(--white); background:var(--navy); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; }
tbody th { font-weight:700; }
.price-cell { color:var(--red); font-size:1.05rem; font-weight:750; white-space:nowrap; }
.price-note,.info-callout { display:flex; align-items:flex-start; gap:.9rem; padding:1.15rem 1.25rem; margin:1.3rem 0; background:var(--paper); border-radius:12px; }
.price-note p,.info-callout { margin-bottom:0; font-size:.88rem; }
.note-mark { display:grid; width:1.5rem; height:1.5rem; flex:0 0 auto; place-items:center; border:1px solid var(--line); color:var(--red); font-family:var(--serif); }
.price-highlight { display:grid; grid-template-columns:1fr auto; gap:.5rem 1.5rem; align-items:center; padding:1.7rem 2rem; margin-bottom:3rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); }
.price-label { grid-column:1/-1; color:var(--ink-soft); font-size:.82rem; font-weight:700; }
.price-highlight strong { color:var(--red); font-family:var(--sans); font-size:2.2rem; font-weight:600; letter-spacing:-.04em; }
.price-highlight a { color:var(--ink); font-size:.85rem; }
.contact-band { display:flex; align-items:center; justify-content:space-between; gap:3rem; padding:4rem max(calc((100vw - 1240px)/2),2.5rem); color:var(--ink); background:var(--paper); border-top:1px solid var(--line); }
.contact-band .eyebrow { color:var(--red); }
.contact-band h2 { max-width:27ch; margin:.8rem 0; color:var(--ink); font-size:clamp(1.9rem,3vw,2.7rem); }
.contact-band p { max-width:42rem; margin-bottom:0; color:var(--ink-soft); }
.contact-band .button-light { color:#fff; background:var(--red-button); }
.contact-band .button-light:hover { background:var(--red-button-hover); }
.contact-band .button { flex:0 0 auto; }
.article-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.article-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); }
.article-card-no-image { border-top:2px solid var(--red); }
.article-card-image { display:block; overflow:hidden; background:var(--paper); }
.article-card-image img { width:100%; aspect-ratio:1.6; object-fit:cover; transition:transform .45s ease; }
.article-card:hover .article-card-image img { transform:scale(1.035); }
.article-card-copy { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:1.3rem 1.35rem 1.5rem; }
.article-card time,.article-page time { color:var(--ink-soft); font-size:.74rem; }
.article-card h3 { margin:.75rem 0; font-family:var(--sans); font-size:1.2rem; font-weight:600; letter-spacing:-.025em; line-height:1.45; }
.article-card h3 a { text-decoration:none; }
.article-card h3 a:hover { color:var(--red); }
.article-card p { display:-webkit-box; overflow:hidden; margin-bottom:1.2rem; -webkit-box-orient:vertical; -webkit-line-clamp:4; font-size:.88rem; }
.article-card-copy .text-link { margin-top:auto; font-size:.82rem; }
.article-page .article-hero { padding-bottom:3.5rem; }
.article-hero h1 { max-width:34ch; }
.article-hero time { display:block; margin:1rem 0; }
.article-layout { display:grid; grid-template-columns:minmax(0,800px); justify-content:center; padding-top:4rem; padding-bottom:2rem; }
.article-body { min-width:0; }
.article-feature-image { margin:0 0 2rem; }
.article-feature-image img { width:100%; max-height:42rem; aspect-ratio:auto; object-fit:contain; border-radius:var(--radius); background:var(--paper); }
.source-gallery { margin:2.5rem 0 3rem; }
.source-gallery h2 { margin-bottom:1.1rem; font-size:1.65rem; }
.source-gallery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap:1rem; }
.source-gallery-grid figure { margin:0; }
.source-gallery-grid img { display:block; width:100%; height:auto; max-height:38rem; object-fit:contain; background:var(--paper); border-radius:12px; }
.aside-phone { display:block; margin-top:.9rem; color:var(--ink); font-weight:750; text-decoration:none; }
.related-panel { padding:1.8rem; background:var(--paper); border-radius:var(--radius); }
.related-panel h2 { font-size:1.55rem; }
.related-panel ul { padding-left:1.15rem; margin-bottom:0; }
.related-panel li { padding:.3rem 0; }
.contact-grid,.review-grid { display:grid; grid-template-columns:1.1fr .9fr; align-items:start; gap:1.5rem; }
.contact-panel,.address-panel,.review-form-panel { padding:clamp(1.4rem,3vw,2.3rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius); min-width:0; }
.contact-panel h2,.address-panel h2,.review-form-panel h2,.review-list h2 { margin:.85rem 0 1rem; font-size:clamp(1.7rem,3vw,2.35rem); }
.contact-method { display:flex; align-items:center; gap:1rem; padding:1rem 0; border-top:1px solid var(--line); text-decoration:none; }
.contact-method:hover strong { color:var(--red); }
.contact-method small,.contact-method strong { display:block; }
.contact-method small { color:var(--ink-soft); font-size:.76rem; }
.contact-method strong { font-size:clamp(1rem,2vw,1.5rem); font-weight:600; letter-spacing:-.025em; overflow-wrap:anywhere; }
.address-panel address { padding:1.1rem 0 .4rem; margin:0; color:var(--ink-soft); font-style:normal; }
.address-panel address+.text-link { margin-bottom:1.2rem; }
.address-panel .text-link { font-size:.83rem; }
.review-grid { grid-template-columns:1.05fr .95fr; }
.review-list { padding:.6rem 0; }
.review-card { padding:1.7rem; margin:1rem 0; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); }
.review-card blockquote { margin:0 0 1rem; color:var(--ink); font-family:var(--sans); font-size:1.15rem; line-height:1.65; letter-spacing:-.015em; }
.review-card figcaption { color:var(--ink-soft); font-size:.75rem; }
.review-form-panel>p { font-size:.86rem; }
.review-form { display:grid; gap:1rem; }
.form-field { display:grid; gap:.35rem; }
.form-field label { font-size:.82rem; font-weight:700; }
.form-field label span,.checkbox-field span span { color:var(--red); }
.form-field input,.form-field textarea,.form-field select { width:100%; min-height:3.2rem; padding:.75rem .85rem; color:var(--ink); background:var(--white); border:1px solid #aeb9be; border-radius:8px; }
.form-field textarea { min-height:8rem; resize:vertical; }
.form-field input:focus,.form-field textarea:focus,.form-field select:focus { border-color:var(--red); outline:2px solid rgba(176,32,49,.16); }
.checkbox-field { display:flex; align-items:flex-start; gap:.7rem; color:var(--ink-soft); font-size:.8rem; }
.checkbox-field input { width:1rem; height:1rem; flex:0 0 auto; margin-top:.2rem; accent-color:var(--red); }
.review-form .button { justify-self:start; cursor:pointer; }
.form-status { min-height:1.5rem; margin:0; color:var(--red-dark); font-size:.85rem; font-weight:700; }
.form-footnote { margin:0; color:var(--ink-soft); font-size:.72rem!important; }
.inquiry-section { background:var(--paper); }
.inquiry-grid { display:grid; grid-template-columns:.75fr 1.25fr; align-items:start; gap:clamp(2rem,6vw,5rem); }
.inquiry-copy h2 { max-width:12ch; margin:1rem 0; }
.inquiry-copy p { max-width:30rem; }
.inquiry-form-panel { padding:clamp(1.25rem,3vw,2rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius); min-width:0; }
.inquiry-form { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-field-wide { grid-column:1/-1; }
.inquiry-form .button { justify-self:start; cursor:pointer; }
.inquiry-form .form-status { grid-column:1/-1; }
.legal-alert { padding:1.25rem 1.4rem; margin-bottom:3rem; border-left:3px solid var(--red); border-radius:8px; background:var(--paper); }
.legal-alert strong { display:block; margin-bottom:.45rem; }
.legal-alert p { margin-bottom:0; font-size:.9rem; }
.site-footer { padding:4.5rem 0 1.3rem; color:#eff1f1; background:#202a30; }
.footer-grid { display:grid; grid-template-columns:1.25fr .9fr .95fr 1fr; gap:2rem; padding-bottom:3rem; }
.footer-brand img { max-width:14rem; margin-bottom:1rem; }
.footer-brand p { max-width:16rem; color:#bfc8cc; font-size:.88rem; }
.footer-grid h2 { margin:0 0 .9rem; color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.footer-list { display:grid; gap:.5rem; padding:0; margin:0; color:#cbd2d4; font-size:.82rem; list-style:none; }
.footer-list a { color:inherit; text-decoration:none; }
.footer-list a:hover { color:var(--red-soft); }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; padding-top:1.2rem; border-top:1px solid #354149; color:#a9b2b6; font-size:.76rem; }
.footer-bottom a { color:inherit; text-decoration:none; }
.mobile-call { display:none; }
@media(max-width:1050px) {
  .container { width:min(calc(100% - 2.5rem),900px); }
  .header-inner { gap:1rem; }
  .brand { width:12rem; }
  .site-nav { gap:.8rem; }
  .nav-link,.nav-contact { font-size:.8rem; }
  .hero-grid { min-height:33rem; }
  .hero-copy { width:67%; padding:3rem 2rem; }
  .hero-image-wrap { height:100%; }
  .country-grid { grid-template-columns:repeat(3,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:760px) {
  html { scroll-padding-top:5rem; }
  .container,.narrow-content { width:calc(100% - 2rem); }
  .utility-bar { display:none; }
  .header-inner { position:relative; min-height:4.65rem; }
  .brand { width:10.75rem; }
  .nav-toggle { display:flex; width:2.8rem; height:2.8rem; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:1px solid var(--line); background:var(--white); cursor:pointer; }
  .nav-toggle span { width:1.1rem; height:1px; background:var(--ink); transition:transform .2s ease; }
  .nav-toggle[aria-expanded=true] span:first-child { transform:translateY(6px) rotate(45deg); }
  .nav-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }
  .nav-toggle[aria-expanded=true] span:last-child { transform:translateY(-6px) rotate(-45deg); }
  .site-nav { position:absolute; top:calc(100% + 1px); right:-1rem; left:-1rem; display:flex; max-height:0; flex-direction:column; align-items:stretch; gap:0; overflow:hidden; visibility:hidden; background:var(--white); border-bottom:1px solid var(--line); opacity:0; transition:max-height .28s ease,opacity .2s ease,visibility .2s ease; }
  .site-nav.is-open { max-height:calc(100vh - 6rem); overflow-y:auto; visibility:visible; opacity:1; }
  .site-nav>.nav-link,.nav-group>.nav-link { min-height:3.5rem; padding:0 1rem; border-top:1px solid var(--line); font-size:.95rem; }
  .nav-group { display:grid; grid-template-columns:1fr 3rem; }
  .nav-group>.nav-link { display:flex; align-items:center; }
  .submenu-toggle { width:3rem; height:3.5rem; border-top:1px solid var(--line); }
  .submenu { position:static; grid-column:1/-1; display:none; width:auto; padding:.25rem 1rem .7rem; border:0; box-shadow:none; }
  .nav-group.is-open .submenu { display:block; }
  .nav-contact { min-height:3.3rem; justify-content:center; margin:.8rem 1rem 1rem; }
  .hero { padding:.75rem 0 2rem; }
  .hero-grid { grid-template-columns:1fr; min-height:0; gap:0; width:calc(100% - 1.5rem); border-radius:16px; }
  .hero-copy { width:100%; padding:2rem 1.5rem 2.3rem; }
  .hero-copy h1 { max-width:100%; margin:1.1rem 0; font-size:clamp(2.1rem,8.5vw,3rem); }
  .hero-lead { font-size:1rem; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:1rem; }
  .hero-image-wrap { position:relative; width:100%; min-height:0; height:18rem; max-height:none; }
  .hero-image-wrap::after { background:linear-gradient(0deg,rgba(17,26,31,.65),transparent 40%); }
  .hero-image { object-position:center 55%; }
  .hero-caption { left:1rem; right:1rem; font-size:.6rem; }
  .section { padding:4rem 0; }
  .about-grid,.map-grid,.contact-grid,.review-grid,.inquiry-grid { grid-template-columns:1fr; gap:1.8rem; }
  .intro-content { grid-template-columns:1fr; gap:1.4rem; }
  .intro-content h2,.about-copy h2,.map-copy h2 { max-width:25ch; }
  .intro-text { align-items:flex-start; flex-direction:column; gap:1rem; }
  .intro-text p { font-size:.98rem; }
  .section-heading { align-items:flex-start; flex-direction:column; gap:.75rem; margin-bottom:1.7rem; }
  .section-heading h2 { max-width:25ch; }
  .feature-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .feature-card,.feature-card+.feature-card,.feature-card:first-child { min-height:0; grid-row:auto; padding:3.7rem 1.4rem 1.4rem; border:1px solid var(--line); }
  .feature-card::before,.feature-card:first-child::before { top:1.2rem; left:1.4rem; font-size:1.2rem; }
  .country-grid { grid-template-columns:repeat(2,1fr); gap:.6rem; }
  .country-card { min-height:9rem; padding:1.1rem; }
  .country-name { font-size:1.15rem; }
  .country-price { font-size:.77rem; }
  .country-grid-compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .country-card:nth-child(5) { grid-column:1/-1; }
  .map-grid { gap:1.5rem; }
  .map-copy h2 { max-width:25ch; }
  .page-hero { padding:1.5rem 0 2.8rem; }
  .breadcrumbs { margin-bottom:1.6rem; font-size:.69rem; }
  .page-hero h1 { margin:.9rem 0; font-size:clamp(2rem,7.5vw,3rem); }
  .page-lead { font-size:.98rem; }
  .narrow-content { padding-top:3rem; padding-bottom:3rem; }
  .article-section { margin-bottom:2.3rem; }
  .article-section p { font-size:.96rem; }
  .table-wrap { margin-right:-.2rem; }
  th,td { padding:.8rem .7rem; font-size:.8rem; }
  thead th { font-size:.68rem; }
  .price-note { padding:.95rem; }
  .price-highlight { grid-template-columns:1fr; }
  .price-highlight a { margin-top:.5rem; }
  .contact-band { align-items:flex-start; flex-direction:column; padding:2.4rem 1rem; }
  .contact-band .button { width:100%; }
  .article-card-grid { grid-template-columns:1fr; gap:1rem; }
  .article-card { display:flex; min-height:0; }
  .article-card-image { height:auto; min-height:0; aspect-ratio:1.8; }
  .article-card-image img { height:100%; min-height:0; aspect-ratio:1.8; }
  .article-card-no-image { display:flex; }
  .article-card-copy { padding:1.3rem; }
  .article-card h3 { margin:.6rem 0; font-size:1.15rem; }
  .article-card p { display:block; }
  .article-card-copy .text-link { padding-top:.55rem; font-size:.77rem; }
  .article-layout { grid-template-columns:1fr; gap:2rem; padding-top:2rem; padding-bottom:3rem; }
  .article-hero h1 { max-width:100%; }
  .article-feature-image img { aspect-ratio:auto; max-height:none; }
  .review-form-panel,.contact-panel,.address-panel { padding:1.2rem; }
  .inquiry-form { grid-template-columns:1fr; }
  .form-field-wide,.inquiry-form .form-status { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:1.8rem 1rem; }
  .footer-grid>:first-child { grid-column:1/-1; }
  .footer-brand img { max-width:12rem; }
  .footer-list { font-size:.77rem; overflow-wrap:anywhere; }
  .footer-bottom { flex-direction:column; padding-bottom:3.7rem; }
  .site-footer { padding:3.2rem 0 1.3rem; }
  .mobile-call { position:fixed; z-index:45; right:.8rem; bottom:max(.75rem,env(safe-area-inset-bottom)); left:.8rem; display:flex; min-height:3.25rem; align-items:center; justify-content:center; gap:.55rem; color:#fff; background:var(--red-button); border-radius:10px; box-shadow:0 8px 30px rgba(21,32,42,.2); font-size:.92rem; font-weight:650; text-decoration:none; }
  .site-nav { left:calc((100vw - 100%)/-2); right:calc((100vw - 100%)/-2); }
  .nav-toggle { border-radius:8px; }
  .map-figure { padding:.75rem; }
}
@media(max-width:390px) {
  .container,.narrow-content { width:calc(100% - 1.4rem); }
  .hero-copy { padding-inline:1.25rem; }
  .hero-copy h1 { font-size:clamp(1.95rem,8.5vw,2.4rem); }
  .country-grid { grid-template-columns:1fr 1fr; }
  .country-card { padding:.8rem; }
  .country-name { font-size:1.05rem; }
  .article-card { grid-template-columns:6.3rem 1fr; }
  .article-card-copy { padding:1.2rem; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid>:first-child { grid-column:auto; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }

@media(prefers-color-scheme:dark) {
  :root { color-scheme:dark; --ink:#eef2f4; --ink-soft:#c4cdd1; --navy:#101920; --navy-2:#1b2931; --paper:#202b32; --white:#162127; --line:#3d4b53; --red:#ff8993; --red-dark:#ffb3ba; --red-soft:#ffc1c6; --shadow:0 18px 48px rgba(0,0,0,.32); }
  .site-header { background:rgba(22,33,39,.97); border-bottom-color:#34424a; }
  .submenu a:hover,.submenu a:focus-visible { background:#25323a; }
  .button-light { color:var(--ink); background:var(--white); }
  .button-light:hover { background:var(--paper); }
  .button-outline { color:var(--ink); border-color:#7f8d94; }
  .button-outline:hover { color:#fff; background:var(--navy); border-color:var(--navy); }
  .map-figure { background:var(--white); }
  .country-card:hover { background:#26343b; }
  .price-highlight { background:var(--paper); }
  .article-card { background:var(--white); border-color:var(--line); }
  .article-card-image { background:var(--paper); }
  .contact-panel,.address-panel,.review-form-panel,.inquiry-form-panel { background:var(--white); }
  .form-field input,.form-field textarea,.form-field select { background:#101920; border-color:#59676e; }
  .form-field input:focus,.form-field textarea:focus,.form-field select:focus { border-color:var(--red); outline-color:rgba(255,137,147,.24); }
  .review-card { background:var(--paper); }
  .legal-alert { background:#2c272a; }
  .site-footer { background:#0c1419; }
  .mobile-call { box-shadow:0 8px 30px rgba(0,0,0,.35); }
}

/* Layout safeguards shared by the existing page templates. */
.hero-copy,.map-copy,.about-copy,.intro-text,.inquiry-copy,.article-section { min-width:0; }
.breadcrumbs { overflow-wrap:anywhere; }
.page-hero h1 { overflow-wrap:anywhere; }
.submenu a { border-radius:6px; }
.section-heading .text-link,.intro-text .text-link { flex-shrink:0; }
.button,.nav-contact { white-space:nowrap; }
.countries-section { border-bottom:1px solid var(--line); }
.countries-section .eyebrow { margin-bottom:.75rem; }
.map-section + .section-soft { background:var(--white); }
.contact-method:last-child { border-bottom:1px solid var(--line); }
.address-panel { background:var(--paper); }
.review-form-panel h2,.contact-panel h2 { margin-top:0; }
.inquiry-copy h2 { max-width:20ch; }
.form-field { min-width:0; }
.form-status { overflow-wrap:anywhere; }
.article-section p { line-height:1.85; }
.article-section + .article-section { padding-top:1rem; }
tbody tr:nth-child(even) { background:var(--paper); }
tbody tr:hover { background:var(--paper); }
.footer-grid h2 { text-transform:none; letter-spacing:0; font-size:.95rem; }
.footer-list { gap:.7rem; }
.footer-list a { display:inline-block; padding:.15rem 0; }
@media(min-width:1060px) {
  .hero-copy h1 { white-space:nowrap; }
  .section-heading { align-items:center; }
  .section-heading h2 { margin-bottom:.8rem; }
  .hero ~ .section .article-card-grid { grid-template-columns:1.3fr 1fr 1fr; }
  .hero ~ .section .article-card:first-child h3 { font-size:1.35rem; }
}
@media(max-width:760px) {
  .section-intro { padding-top:2.5rem; }
  .section { padding-block:3.25rem; }
  .hero-lead { margin-bottom:1.5rem; }
  .hero-actions .button { font-size:.85rem; padding-inline:1.1rem; }
  .hero-caption { left:1rem; right:1rem; gap:.5rem; }
  .contact-band { padding:2.5rem 1rem; gap:1.5rem; }
  .contact-panel,.address-panel,.review-form-panel { padding:1.5rem; }
  .footer-bottom { padding-bottom:4.5rem; }
  .hero-copy .eyebrow { font-size:.65rem; letter-spacing:.02em; }
  .hero-copy .eyebrow::before { width:1rem; flex-shrink:0; }
  .table-wrap { margin-right:0; }
  .pricing-section table .text-link { font-size:.75rem; gap:.3rem; }
  .about-image::before { right:0; bottom:-.5rem; }
}
@media(prefers-color-scheme:dark) {
  .contact-band .button-light { color:#fff; background:var(--red-button); }
  .contact-band .button-light:hover { background:var(--red-button-hover); }
  thead th { color:#eef2f4; }
}

/* Motion signals hierarchy, never delays access to content or contact. */
@media(prefers-reduced-motion:no-preference) {
  @keyframes hero-enter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
  .hero-copy > * { animation:hero-enter .7s cubic-bezier(.2,.7,.2,1) both; }
  .hero-copy h1 { animation-delay:.08s; }
  .hero-copy .hero-lead { animation-delay:.16s; }
  .hero-copy .hero-actions { animation-delay:.24s; }
  .reveal-pending { transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1); }
  .reveal-pending:not(.is-visible) { opacity:0; transform:translateY(18px); }
  .text-link span,.nav-contact span { transition:transform .2s ease; }
  .text-link:hover span,.nav-contact:hover span { transform:translateX(3px); }
}
