/* GLASS: floating navigation, full photographic stage, translucent surfaces. */
.design-glass { --glass-max-width:1140px; --glass-gutter:40px; --glass-frame:16px; --glass-panel-padding:22px; background:radial-gradient(ellipse at 10% 35%,#dfe9ed,transparent 45%),var(--paper); }
.design-glass .site-header { position:fixed; top:28px; left:50%; transform:translateX(-50%); width:min(var(--glass-max-width),calc(100% - var(--glass-gutter) - var(--glass-gutter))); height:78px; border:0; background:transparent; border-radius:100px; box-shadow:none; backdrop-filter:none; isolation:isolate; }
.design-glass .site-header::before { content:""; position:absolute; inset:0; z-index:-1; border:1px solid #ffffffb3; border-radius:inherit; background:#edf3f8f2; backdrop-filter:blur(24px); clip-path:inset(0 round 100px); }
.design-glass .header-inner { width:100%; padding-inline:22px; gap:28px; }
.design-glass .wordmark { font-size:27px; }
.design-glass .wordmark span { font-size:6px; letter-spacing:.22em; margin-top:7px; }
.design-glass .main-nav { gap:26px; }
.design-glass .main-nav a { font-size:12px; }
.design-glass .button { border-radius:100px; }
.design-glass .button-small { padding:13px 18px; font-size:11px; gap:12px; }
.glass-hero { margin:var(--glass-frame); min-height:850px; height:calc(100svh - 32px); max-height:1080px; border-radius:34px; overflow:hidden; color:#fff; background:#263d49; }
.glass-background,.glass-background img,.glass-shade { position:absolute; inset:0; width:100%; height:100%; }
.glass-background img { object-position:center 58%; }
.glass-shade { background:linear-gradient(180deg,#0d24385c,#1a304985 42%,#142e43b3); }
.glass-hero-copy { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding-top:175px; padding-bottom:190px; min-height:100%; }
.glass-hero-copy .eyebrow { color:#f4f8fc; letter-spacing:.22em; font-size:10px; }
.glass-hero-copy h1 { font:400 clamp(68px,6.7vw,104px)/1.02 Georgia,serif; letter-spacing:-.06em; margin-top:27px; }
.glass-hero-copy h1 em { font-weight:400; color:#fff; }
.glass-hero-copy .hero-description { max-width:390px; color:#f3f7fa; margin-top:24px; font-size:14px; }
.glass-hero-copy .hero-buttons { gap:28px; }
.glass-hero-copy .button { color:#20384a; background:#fffffff2; border-color:white; padding:18px 27px; box-shadow:inset 0 1px 0 white,0 7px 30px #0002; }
.glass-hero-copy .button:hover { background:white; }
.glass-hero-copy .inline-link { color:white; border-color:#ffffff80; }
.glass-hero-bottom { position:absolute; bottom:30px; left:0; right:0; display:flex; gap:25px; justify-content:space-between; align-items:center; z-index:1; }
.glass-note { display:flex; align-items:center; gap:17px; background:#21394de6; border:1px solid #ffffff70; border-radius:20px; padding:19px 24px; font-size:11px; line-height:1.7; clip-path:inset(0 round 20px); }
.glass-dot { width:9px; height:9px; background:#d8f0df; border-radius:50%; box-shadow:0 0 0 6px #ffffff15; flex-shrink:0; }
.glass-location { font:italic 22px/1.5 Georgia,serif; }
.glass-location > span { display:block; font:8px/1.6 Arial,sans-serif; letter-spacing:.18em; margin-top:5px; }
.glass-scroll { width:48px; height:48px; display:grid; place-items:center; border:1px solid #ffffff90; border-radius:50%; font-size:24px; }
.design-glass .values-strip { border:0; color:var(--muted); padding-block:36px; }
.design-glass .section-heading { flex-direction:column; align-items:center; text-align:center; gap:24px; margin-bottom:46px; }
.design-glass .section-heading h2 { font-size:clamp(45px,4.8vw,68px); }
.design-glass .section-heading p { max-width:390px; }
.design-glass .service-preview { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; border:0; }
.design-glass .service-card,.design-glass .service-card:first-child { border:1px solid #ffffffed; padding:30px 36px; border-radius:27px; background:#ffffffb8; box-shadow:0 10px 30px #24405405; }
.design-glass .service-card:hover { background:white; transform:translateY(-3px); }
.design-glass .service-card h3 { font-size:46px; margin-top:22px; }
.design-glass .service-card h3 br { display:none; }
.design-glass .service-card p { max-width:330px; }
.design-glass .section-link { display:table; margin:30px auto 0; }
.design-glass .team-teaser { display:flex; flex-direction:column; gap:0; padding-top:0; }
.design-glass .team-photo { width:100%; border-radius:32px; overflow:hidden; }
.design-glass .team-photo img { aspect-ratio:1.9; object-position:center 28%; }
.design-glass .photo-label { top:20px; bottom:auto; border-radius:100px; background:#ffffffda; }
.design-glass .team-teaser-copy { width:100%; background:#f7fafce8; border:1px solid white; border-radius:28px; position:relative; margin-top:-80px; padding:45px 55px; text-align:center; backdrop-filter:blur(20px); clip-path:inset(0 round 28px); }
.design-glass .team-teaser-copy > p { margin-inline:auto; max-width:430px; }
.design-glass .team-teaser-copy .handwritten { margin-top:25px; }
.design-glass .booking-banner { margin:0 auto; border-radius:30px; background:#d6e4eb; color:var(--ink); }
.design-glass .booking-banner .button { background:var(--ink); color:white; border-color:var(--ink); }
.design-glass .page-intro { padding-top:180px; padding-bottom:70px; text-align:center; }
.design-glass .page-intro-row { display:flex; align-items:center; flex-direction:column; gap:25px; }
.design-glass .page-intro p { max-width:430px; }
.design-glass .services-list { padding-bottom:50px; }
.design-glass .service-row { margin-bottom:16px; background:#ffffffc7; border:1px solid white; border-radius:25px; padding:33px; }
.design-glass .service-row-end strong { font-size:36px; }
.design-glass .team-wide { border-radius:32px; overflow:hidden; }
.design-glass .team-profiles article { background:#ffffffad; border:1px solid white; border-radius:25px; padding:27px; }
.design-glass .team-profiles { gap:20px; }
.design-glass .team-profiles h2 { font-size:42px; }
.design-glass .text-quote { background:#ffffff5c; border-radius:35px; padding:70px 40px; margin-block:0 70px; }
.design-glass .contact-layout { padding-top:15px; }
.design-glass .map-panel { border:1px solid white; border-radius:27px; overflow:hidden; background:#ffffffbd; }
.design-glass .contact-form-section { background:transparent; }
.design-glass #contact-form { padding:32px; background:#ffffffb8; border:1px solid white; border-radius:27px; }
.design-glass .site-footer { background:#dce7ee; border-radius:30px; margin:30px auto var(--glass-frame); padding-top:45px; }
.design-glass .footer-display { font-size:clamp(36px,11vw,154px); font-family:Georgia,serif; font-style:italic; text-align:center; }
.design-glass .booking-dialog { border-radius:28px; box-shadow:0 20px 100px #19374a26; }
@supports(backdrop-filter:blur(20px)) {
  .design-glass .site-header::before { background:#edf3f8ce; }
  .glass-note { background:#ffffff24; backdrop-filter:blur(24px); }
}
@media(max-width:1100px) {
  .design-glass .brand-symbol { display:none; }
  .design-glass .header-inner { gap:20px; }
  .design-glass .main-nav { gap:18px; }
  .glass-location { font-size:19px; }
  .glass-note { padding:17px; }
}
@media(max-width:800px) {
  .design-glass { --glass-gutter:32px; --glass-frame:10px; --glass-panel-padding:20px; }
  .design-glass .site-header { top:20px; height:68px; }
  .design-glass .header-inner { padding-inline:20px; }
  .design-glass .wordmark { font-size:26px; }
  .design-glass .main-nav { top:77px; border-radius:24px; background:#f5f8fcf2; border:1px solid white; padding:18px; box-shadow:0 15px 50px #10273926; }
  .glass-hero { margin:var(--glass-frame); border-radius:25px; min-height:790px; height:auto; }
  .glass-hero-copy { padding-top:175px; padding-bottom:240px; min-height:790px; }
  .glass-hero-copy h1 { font-size:clamp(55px,9.4vw,80px); }
  .glass-hero-bottom { bottom:25px; gap:20px; align-items:flex-end; }
  .glass-location { display:none; }
  .glass-note { font-size:10px; max-width:350px; padding:19px; }
  .glass-scroll { flex-shrink:0; }

  .design-glass .team-teaser-copy { width:100%; padding:32px; margin-top:-50px; }
  .design-glass .team-profiles { grid-template-columns:1fr; }
  .design-glass .team-profiles p { max-width:none; }
  .design-glass .service-row { padding:24px; }
  .design-glass .page-intro { padding-top:145px; }
}
@media(max-width:560px) {
  .design-glass { --glass-gutter:21px; --glass-panel-padding:14px; }
  .design-glass .site-header { top:22px; height:64px; }
  .design-glass .header-inner { padding-inline:14px; gap:10px; }
  .design-glass .wordmark { font-size:24px; }
  .design-glass .wordmark span { display:none; }
  .design-glass .button-small { font-size:10px; padding:11px 12px; gap:9px; }
  .design-glass .button-small svg { display:none; }
  .design-glass .menu-toggle { width:31px; padding:5px; }
  .glass-hero { min-height:760px; }
  .glass-hero-copy { padding-top:160px; padding-bottom:205px; min-height:760px; justify-content:flex-start; }
  .glass-hero-copy .eyebrow { font-size:8px; letter-spacing:.16em; }
  .glass-hero-copy h1 { font-size:clamp(47px,12.5vw,69px); margin-top:28px; }
  .glass-hero-copy .hero-description { font-size:13px; max-width:290px; margin-top:25px; }
  .glass-hero-copy .hero-buttons { flex-direction:column; gap:15px; }
  .glass-hero-copy .button { font-size:12px; padding:16px 23px; }
  .glass-hero-bottom { bottom:20px; gap:12px; }
  .glass-note { padding:14px; gap:12px; font-size:9px; border-radius:17px; }
  .glass-scroll { width:38px; height:38px; font-size:20px; }
  .design-glass .values-strip { font-size:8px; }
  .design-glass .service-preview { grid-template-columns:1fr; gap:15px; }
  .design-glass .service-card,.design-glass .service-card:first-child { display:block; padding:25px; }
  .design-glass .service-card h3 { font-size:36px; margin-top:17px; }
  .design-glass .team-teaser-copy { width:100%; padding:29px 23px; margin-top:-25px; }
  .design-glass .team-teaser-copy h2 { font-size:39px; }
  .design-glass .team-photo img { aspect-ratio:1.2; }
  .design-glass .photo-label { display:none; }
  .design-glass .booking-banner { margin-inline:auto; padding-block:50px; }
  .design-glass .booking-banner h2 { font-size:41px; }
  .design-glass .service-row { padding:25px 20px; gap:12px; }
  .design-glass .service-row h2 { font-size:29px; }
  .design-glass .service-row-end strong { font-size:28px; }
  .design-glass .page-intro h1 { font-size:49px; }
  .design-glass #contact-form { padding:24px 20px; }
  .design-glass .text-quote { padding:45px 24px; }
  .design-glass .text-quote h2 { font-size:37px; }
}

@media(max-width:360px) {
 .design-glass .wordmark { font-size:22px; }
 .design-glass .button-small { font-size:9px; padding:11px 10px; white-space:nowrap; }
}

/* One shared outer grid. Text may stay narrower inside its own panel. */
.design-glass .wrap,
.design-glass .booking-banner,
.design-glass .site-footer {
  width:min(var(--glass-max-width),calc(100% - var(--glass-gutter) - var(--glass-gutter)));
  margin-inline:auto;
}
.design-glass .site-header .header-inner { width:100%; }
.design-glass .booking-banner > .wrap,
.design-glass .site-footer > .wrap {
  width:calc(100% - var(--glass-panel-padding) - var(--glass-panel-padding));
}
/* The hero frame is wider; its content still follows the page grid. */
.design-glass .glass-hero > .wrap {
  width:min(var(--glass-max-width),calc(100% - var(--glass-gutter) - var(--glass-gutter) + var(--glass-frame) + var(--glass-frame)));
}
