:root { color-scheme: dark; --bg:#24292d; --panel:#1c2023; --text:#f5f4f2; --muted:#cfcdca; --line:#45494c; }
* { box-sizing:border-box }
body { margin:0; background:var(--bg); color:var(--text); font:1rem/1.65 "Open Sans",system-ui,sans-serif; }
a { color:inherit }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid #e2ba77; outline-offset:4px }
.skip { position:fixed; z-index:3; left:1rem; top:1rem; transform:translateY(-300%); background:var(--panel); padding:.6rem }
.skip:focus { transform:none }
.site-sidebar { position:fixed; inset:0 auto 0 0; width:235px; overflow:auto; background:var(--panel); text-align:center; border-right:1px solid var(--line); }
.brand { display:block; padding:2.4rem 0 1.8rem }
.brand img { width:135px; height:auto; display:block; margin:auto }
nav a { text-decoration:none }
.site-sidebar nav a { display:block; padding:.68rem 1rem; text-transform:uppercase; font-size:.82rem; letter-spacing:.11em; font-weight:700 }
.site-sidebar nav a:hover,.site-sidebar nav a[aria-current] { background:#30363a }
.social { display:flex; justify-content:center; gap:.85rem; font-size:.8rem; margin:1.3rem 0 }
.site { margin-left:235px; min-height:100vh; display:flex; flex-direction:column }
main { flex:1 }
.hero { position:relative; min-height:clamp(400px,78vh,900px); display:grid; align-items:center; isolation:isolate; overflow:hidden; }
.hero video,.hero picture,.hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2 }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#0009,transparent); z-index:-1 }
.hero h1 { max-width:22ch; padding:0 clamp(1.25rem,5vw,5rem); font-size:clamp(2rem,4.4vw,4.4rem); line-height:1.14; margin:0 }
.video-toggle { position:absolute; right:1rem; bottom:1rem; border:1px solid #fff8; background:#151515; padding:.45rem .7rem; color:white; cursor:pointer; }
.page-heading { margin:0; padding:clamp(1.5rem,4vw,3rem) clamp(1.25rem,5vw,5rem); line-height:1.15; font-size:clamp(1.9rem,4vw,3.3rem); }
.split { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.split img { width:100%; height:100%; min-height:260px; object-fit:cover; }
.section-copy { padding:clamp(1.25rem,4.5vw,4.5rem); overflow-wrap:anywhere; }
.section-copy h2,.section-copy h3,.section-copy h4 { margin:.25rem 0; line-height:1.25 }
.section-copy h5 { margin:0 }
.about-grid,.review-grid,.contact-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.about-grid img { width:100%; height:auto; display:block }
.reviews,.prose,.contact-strip { padding:clamp(1.25rem,4vw,4.5rem); }
.reviews h2 { margin-top:0; }
.review-grid { gap:1rem; grid-template-columns:repeat(auto-fit,minmax(min(235px,100%),1fr)); }
.review-grid figure { margin:0; background:var(--panel); padding:1.2rem; border-top:1px solid var(--line) }
.review-grid blockquote { margin:0 0 .7rem }
.review-grid figcaption { color:var(--muted); font-size:.9rem; }
.prose { max-width:950px }
details { border-bottom:1px solid var(--line); padding:.85rem 0 }
details summary { cursor:pointer; font-weight:650 }
details > div { padding:.65rem 0; color:var(--muted) }
.contact-strip { gap:1.2rem; border-top:1px solid var(--line); }
.contact-strip h2 { margin:0; font-size:1rem; }
.contact-strip > :last-child { grid-column:1/-1; font-size:.85rem; }
form { display:grid; gap:1rem }
form label { display:grid; gap:.28rem }
form input,form select,form textarea { width:100%; background:var(--panel); color:var(--text); border:1px solid #72777b; padding:.65rem; font:inherit }
form button { justify-self:start; border:0; background:var(--text); color:var(--panel); padding:.7rem 1.4rem; cursor:pointer; font:inherit; font-weight:700 }
.trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden }
footer { border-top:1px solid var(--line); background:var(--panel); padding:1.1rem; text-align:center; font-size:.85rem; color:var(--muted) }
footer .social { margin:.4rem 0; }
footer .cookie-notice-link { margin-bottom:0; }
@media (max-width:800px) {
  .site-sidebar { position:static; width:auto; overflow:visible; border:0; }
  .site-sidebar nav { display:flex; flex-wrap:wrap; justify-content:center; }
  .site-sidebar nav a { padding:.55rem .7rem; }
  .site-sidebar .social { margin:.45rem 0; }
  .brand { padding:.85rem 0 .35rem; }
  .brand img { width:85px; }
  .site { margin-left:0; }
  .hero { min-height:clamp(340px,57vh,520px); }
}
@media (max-width:570px) {
  .split,.about-grid,.contact-strip { grid-template-columns:1fr }
  .split img { max-height:350px; height:auto; }
}

:root { --accent:#d4ae7d; --accent-border:#876c4e; }
.page-home { display:grid; }
.about-slogan {
  display:grid;
  gap:.3rem;
  font-size:clamp(1.65rem,3vw,3rem);
  letter-spacing:-.035em;
  line-height:1.08;
  margin:0 0 1.6rem;
}
.about-slogan span:last-child { color:var(--accent); }
.about-slogan::after { content:""; width:3rem; height:2px; margin-top:.7rem; background:var(--accent); }
.awards { padding:clamp(1.25rem,4vw,4.5rem); background:var(--panel); border-top:1px solid var(--line); }
.awards h2 { margin:0; }
.award-certification { color:var(--accent); margin:.4rem 0 1.5rem; }
.award-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap:1rem; }
.award { position:relative; min-height:14rem; padding:0; border:1px solid var(--accent-border); background:#303337; }
.award summary { min-height:14rem; display:grid; place-content:center; justify-items:center; padding:1rem; text-align:center; color:var(--accent); }
.award summary::-webkit-details-marker { display:none; }
.award summary strong { font-size:1.4rem; }
.award summary > span:last-child { font-size:.9rem; }
.trophy { font-size:1.65rem; margin-bottom:.35rem; }
.award .award-info { display:grid; align-content:center; padding:1rem; color:#171512; background:var(--accent); }
.award-info ul { margin:.4rem 0 0; padding-left:1.1rem; font-size:.87rem; line-height:1.4; }
@supports selector(details::details-content) {
  .award::details-content { position:absolute; inset:0; display:grid; pointer-events:none; }
  .award[open] .award-info { box-shadow:inset 0 0 0 1px var(--accent-border); }
  @media (hover:hover) {
    .award:hover::details-content { content-visibility:visible; }
  }
}
.rates { display:flex; flex-wrap:wrap; gap:.65rem; margin:.7rem 0 0; padding:0; list-style:none; }
.rates li { flex:1 1 6.7rem; max-width:14rem; display:grid; align-content:start; padding:.55rem .75rem; border:1px solid var(--accent-border); background:var(--panel); }
.rates strong { color:var(--accent); font-size:clamp(1.5rem,2.8vw,2.35rem); line-height:1.15; font-variant-numeric:tabular-nums; }
.rates span { font-size:.84rem; margin-top:.2rem; }
.reviews { background:var(--panel); text-align:center; }
.reviews h2 { font-size:clamp(1.5rem,3vw,2.6rem); }
.reviews .review-grid { display:flex; gap:1rem; max-width:52rem; margin-inline:auto; overflow-x:auto; scroll-snap-type:x mandatory; }
.reviews figure { flex:0 0 100%; scroll-snap-align:start; background:#2b3034; border-top:2px solid var(--accent); padding:clamp(1rem,4vw,3rem); display:grid; align-content:center; justify-items:center; min-height:16rem; }
.reviews figure::before { content:"“"; font:4.25rem/.7 Georgia,serif; color:var(--accent); }
.reviews blockquote { font-size:clamp(1.02rem,2vw,1.38rem); max-width:48ch; }
.reviews figcaption { color:var(--accent); font-weight:700; }
.review-controls:not([hidden]) { display:flex; justify-content:center; gap:.65rem; margin-top:.9rem; }
.review-controls button { width:2.75rem; height:2.75rem; border:1px solid var(--accent-border); background:transparent; color:var(--accent); cursor:pointer; font:inherit; }
.review-controls button:disabled { opacity:.4; cursor:default; }
.faq-hero { position:relative; display:grid; align-items:end; isolation:isolate; min-height:clamp(15rem,37vw,37.5rem); background:#252623; }
.faq-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.faq-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 45%,#000b); z-index:-1; }
.page-faq .prose { margin-inline:auto; }
.page-faq details { border-bottom:1px solid var(--accent-border); }
.page-faq summary { padding:.2rem 0; }
.page-faq summary::marker,.page-faq details[open] summary { color:var(--accent); }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:center; gap:.25rem 1rem; margin:.35rem 0; }
.footer-legal a { text-decoration:underline; }
.legal-page { margin-inline:auto; }
.legal-page h1 { font-size:clamp(1.9rem,4vw,3rem); line-height:1.15; }
.legal-page h2 { color:var(--accent); font-size:1.2rem; }
.form-privacy { margin:0; font-size:.9rem; }

.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.section-copy p,.section-copy li,.page-faq details > div,.reviews blockquote,.legal-page p,.form-privacy,.cookie-notice p {
  text-align:justify;
  hyphens:auto;
  overflow-wrap:break-word;
}
.awards > h2,.award-certification { text-align:center; }
.award-grid { grid-template-columns:repeat(3,minmax(0,1fr)); width:min(100%,58rem); margin-inline:auto; }
.social a {
  display:grid;
  place-items:center;
  width:2.5rem;
  height:2.5rem;
  border:1px solid var(--accent-border);
  border-radius:50%;
  color:var(--accent);
}
.social a:hover { background:var(--accent); color:var(--panel); }
.social svg { width:1.2rem; height:1.2rem; }
.contact-strip {
  grid-template-columns:repeat(3,minmax(0,16rem));
  justify-content:center;
  gap:clamp(.75rem,2vw,1.75rem);
  text-align:center;
  background:#202529;
}
.contact-card { display:grid; align-content:start; justify-items:center; gap:.45rem; min-width:0; padding:1rem .5rem; }
.contact-card > svg { width:2rem; height:2rem; color:var(--accent); margin-bottom:.25rem; }
.contact-card h2 { color:var(--accent); letter-spacing:.06em; font-size:.82rem; }
.contact-card a { overflow-wrap:anywhere; text-underline-offset:.2em; }
.contact-strip-note { border-top:1px solid var(--accent-border); padding-top:.65rem; color:var(--muted); }
.contact-strip-note p { margin:.35rem 0; }
.contact-strip-note .social { margin:.7rem 0 0; }
.faq-hero::after { display:none; }
@media (max-width:800px) {
  .award-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:570px) {
  .contact-strip { grid-template-columns:minmax(0,22rem); }
  .contact-card { padding:.55rem 0; }
}
@media (max-width:420px) {
  .award-grid { grid-template-columns:minmax(0,19rem); justify-content:center; }
}

.contact-layout {
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  width:min(100% - 2.5rem,68rem);
  margin:clamp(1.25rem,5vw,4rem) auto;
  border:1px solid var(--accent-border);
  background:var(--panel);
}
.contact-photo { position:relative; min-height:100%; overflow:hidden; }
.contact-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.contact-photo::after { content:""; position:absolute; inset:.8rem; border:1px solid #e5c7a080; pointer-events:none; }
.contact-form-panel { padding:clamp(1.25rem,4vw,3rem); min-width:0; }
.contact-form-panel label > span > span { color:var(--accent); }
.contact-form-panel button { background:var(--accent); }
.contact-status { margin-top:0; color:var(--accent); }
@media (max-width:680px) {
  .contact-layout { grid-template-columns:minmax(0,1fr); }
  .contact-photo { min-height:0; aspect-ratio:2 / 1; }
}

@font-face {
  font-family:"Explora";
  src:url("/explora.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
.section-copy .signature {
  margin:.55rem 0 0;
  font:400 clamp(3.4rem,6vw,5.1rem)/1 "Explora","Snell Roundhand",cursive;
  color:var(--accent);
  text-align:start;
}

footer .footer-legal { align-items:center; column-gap:1rem; row-gap:.35rem; margin:.65rem 0 0; }
footer .footer-legal .cookie-notice-link { margin:0; padding:0; }

.hero::before,.faq-hero::before,.contact-photo::after {
  content:"";
  position:absolute;
  z-index:1;
  inset:clamp(.8rem,2.1vw,1.75rem);
  border:0;
  pointer-events:none;
  --corner:#e5bc86;
  --arm:clamp(1.1rem,3vw,2.5rem);
  background:
    linear-gradient(var(--corner),var(--corner)) left top/var(--arm) 2px no-repeat,
    linear-gradient(var(--corner),var(--corner)) left top/2px var(--arm) no-repeat,
    linear-gradient(var(--corner),var(--corner)) right bottom/var(--arm) 2px no-repeat,
    linear-gradient(var(--corner),var(--corner)) right bottom/2px var(--arm) no-repeat;
  filter:drop-shadow(0 1px 2px #0009);
}
.hero .video-toggle { z-index:2; right:calc(clamp(.8rem,2.1vw,1.75rem) + .65rem); bottom:calc(clamp(.8rem,2.1vw,1.75rem) + .65rem); }
