:root{
  --cream:#f7f1e5;
  --cream-2:#fffaf1;
  --mint:#d9eee7;
  --aqua:#cfeaec;
  --sage:#dfe7c9;
  --peach:#f5d2c4;
  --lemon:#efe6a8;
  --forest:#123c34;
  --forest-2:#1e584a;
  --coral:#df765e;
  --sky:#74b8bb;
  --ink:#163b34;
  --muted:#68786f;
  --line:rgba(18,60,52,.15);
  --max:1680px;
  --radius:34px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
.wrap{width:min(var(--max),calc(100% - 64px));margin:0 auto}

/* HEADER */
.header{
  position:fixed;z-index:100;top:0;left:0;right:0;height:80px;
  background:rgba(247,241,229,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line)
}
.nav{
  height:100%;
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:30px
}
.wordmark{
  display:flex;align-items:center;gap:11px;
  font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  white-space:nowrap
}
.brand-dot{
  width:14px;height:14px;border-radius:50%;
  background:linear-gradient(135deg,var(--sky),var(--forest-2));
  box-shadow:8px -5px 0 -4px var(--coral), -6px 7px 0 -4px var(--lemon)
}
.navlinks{
  display:flex;justify-content:center;gap:28px;
  font-size:11px;text-transform:uppercase;letter-spacing:.14em
}
.navlinks a{opacity:.55;transition:.2s}
.navlinks a:hover,.navlinks a.active{opacity:1}

.lang-switch{
  display:flex;align-items:center;gap:6px;
  padding:5px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.6)
}
.flag-link{
  width:36px;height:30px;border-radius:999px;
  display:grid;place-items:center;
  transition:.2s;
  position:relative
}
.flag-link img{
  width:21px;height:14px;object-fit:cover;border-radius:3px;
  box-shadow:0 0 0 1px rgba(0,0,0,.12)
}
.flag-link span{position:absolute;left:-9999px}
.flag-link:hover{background:var(--mint)}
.flag-link.active{
  background:var(--forest);
  box-shadow:0 4px 12px rgba(18,60,52,.15)
}
.flag-link.active img{box-shadow:0 0 0 2px #fff}
.menu{display:none;background:transparent;border:0;color:var(--ink);font-size:22px}

/* HERO */
.hero{
  padding:80px 0 34px;
  background:
    radial-gradient(circle at 8% 18%, rgba(116,184,187,.28) 0 13%, transparent 13.2%),
    radial-gradient(circle at 91% 15%, rgba(223,118,94,.18) 0 10%, transparent 10.2%),
    linear-gradient(180deg,var(--cream-2),var(--cream));
}
.hero-intro{
  min-height:520px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;
  padding:72px 0 48px
}
.kicker{
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  background:var(--mint);
  font-size:10px;text-transform:uppercase;letter-spacing:.20em;
  color:var(--forest-2);
  font-weight:800;
  margin-bottom:22px
}
.display{
  margin:0;
  font-size:clamp(70px,9.5vw,168px);
  font-weight:500;
  letter-spacing:-.075em;
  line-height:.78
}
.hero-side{
  max-width:490px;justify-self:end;
  background:rgba(255,255,255,.55);
  padding:30px;
  border-radius:28px;
  border:1px solid rgba(18,60,52,.09);
  box-shadow:0 24px 70px rgba(36,89,77,.08)
}
.hero-side p{font-size:17px;line-height:1.65;color:var(--muted);margin:0 0 26px}
.text-link{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 17px;
  background:var(--forest);
  color:white;
  border-radius:999px;
  font-size:10px;text-transform:uppercase;letter-spacing:.15em;
  border:0
}
.hero-photo{
  display:block;
  overflow:hidden;
  background:white;
  border-radius:var(--radius);
  box-shadow:0 28px 80px rgba(18,60,52,.12)
}
.hero-photo img{width:100%;height:auto}
.photo-meta{
  display:flex;justify-content:space-between;gap:20px;
  padding:14px 8px 0;color:var(--muted);
  font-size:10px;text-transform:uppercase;letter-spacing:.14em
}

/* PLAYFUL RIBBON */
.brand-ribbon{
  overflow:hidden;
  background:var(--forest);
  color:#fff;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08)
}
.brand-ribbon-track{
  width:max-content;
  display:flex;align-items:center;gap:20px;
  padding:16px 24px;
  font-size:11px;font-weight:800;letter-spacing:.18em
}
.brand-ribbon-track i{font-style:normal;color:var(--peach)}

/* SECTIONS */
.section{padding:126px 0}
.section.soft{background:var(--mint)}
.section.sand{background:var(--lemon)}
.section-title-row{
  display:grid;grid-template-columns:1fr 1fr;gap:50px;
  margin-bottom:68px;align-items:end
}
.section-label{
  display:inline-flex;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.62);
  font-size:10px;text-transform:uppercase;letter-spacing:.20em;
  color:var(--forest-2);font-weight:800
}
.section-title{
  font-size:clamp(54px,7vw,110px);
  line-height:.86;letter-spacing:-.06em;font-weight:500;margin:14px 0 0
}
.section-copy{max-width:590px;color:var(--muted);line-height:1.72;font-size:15px;margin:0}

/* PROJECTS */
.project{
  margin-bottom:92px;
  padding:24px;
  border-radius:38px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(18,60,52,.08)
}
.project:nth-of-type(2n){background:rgba(245,210,196,.50)}
.project:last-child{margin-bottom:0}
.project-media{
  overflow:hidden;background:#fff;border-radius:26px
}
.project-media img{width:100%;height:auto;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.project:hover .project-media img{transform:scale(1.012)}
.project-info{
  display:grid;grid-template-columns:1.25fr .75fr;gap:40px;
  align-items:start;padding-top:18px
}
.project-title{
  font-size:clamp(34px,4vw,64px);line-height:.95;
  letter-spacing:-.045em;font-weight:500;margin:0
}
.project-data{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;
  font-size:12px;line-height:1.65;color:var(--muted)
}
.project-data strong{color:var(--ink);font-weight:700}
.project-number{
  display:inline-flex;
  margin:0 0 12px;
  padding:7px 10px;
  border-radius:999px;
  background:var(--forest);
  color:#fff;
  font-size:9px;letter-spacing:.17em;text-transform:uppercase;font-weight:800
}
.split-projects{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.split-projects .project{margin-bottom:0}
.split-projects .project-info{grid-template-columns:1fr}
.split-projects .project-data{grid-template-columns:1fr}

/* AWARDS */
.awards{
  background:
    radial-gradient(circle at 12% 15%, rgba(116,184,187,.23), transparent 28%),
    radial-gradient(circle at 88% 85%, rgba(223,118,94,.20), transparent 28%),
    var(--forest);
  color:#fff
}
.awards .section-label{background:rgba(255,255,255,.10);color:#d8eee4}
.award-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  border:0
}
.award{
  padding:34px;
  border-radius:30px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06)
}
.award:nth-child(2){background:rgba(223,118,94,.18)}
.award:nth-child(3){background:rgba(116,184,187,.16)}
.award-num{
  font-size:clamp(88px,10vw,175px);line-height:.8;
  letter-spacing:-.08em;font-weight:500
}
.award p{
  font-size:11px;line-height:1.55;text-transform:uppercase;
  letter-spacing:.13em;margin:23px 0 0;color:#c5d9d1
}

/* SPONSOR */
.sponsor{
  display:grid;place-items:center;text-align:center;
  background:linear-gradient(135deg,#fff7f2,var(--peach));
  border:0
}
.sponsor-inner{padding:84px 24px}
.sponsor .small{
  display:inline-flex;padding:7px 11px;border-radius:999px;
  background:white;
  font-size:10px;text-transform:uppercase;letter-spacing:.2em;
  color:var(--forest-2);font-weight:800;margin-bottom:26px
}
.sponsor-logo{display:flex;justify-content:center;align-items:center;margin:0 auto}
.sponsor-logo img{width:min(560px,76vw);height:auto}
.sponsor p{max-width:560px;margin:28px auto 0;color:#6f635f;font-size:14px;line-height:1.7}
.sponsor .visit{
  display:inline-flex;margin-top:25px;padding:12px 20px;
  border-radius:999px;background:var(--forest);color:#fff;
  font-size:10px;text-transform:uppercase;letter-spacing:.16em
}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:80px}
.service-list{display:grid;gap:12px}
.service{
  display:grid;grid-template-columns:58px 1fr auto;gap:18px;align-items:center;
  padding:22px 24px;
  border-radius:22px;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(18,60,52,.08)
}
.service span{color:var(--forest-2);font-size:10px;font-weight:800}
.service h3{font-size:23px;font-weight:500;letter-spacing:-.03em;margin:0}
.service i{font-style:normal;color:var(--forest-2)}

/* ABOUT */
.about{display:grid;grid-template-columns:.72fr 1.28fr;gap:56px}
.about-logo{
  background:linear-gradient(145deg,var(--aqua),var(--sage));
  display:grid;place-items:center;padding:48px;min-height:500px;
  border-radius:36px
}
.about-logo img{width:min(390px,88%);height:auto}
.about-copy{
  display:flex;flex-direction:column;justify-content:space-between;
  background:white;padding:44px;border-radius:36px;
  border:1px solid rgba(18,60,52,.08)
}
.about-copy h2{
  font-size:clamp(48px,6vw,92px);line-height:.9;
  letter-spacing:-.055em;font-weight:500;margin:14px 0 34px
}
.about-copy p{max-width:680px;color:var(--muted);font-size:17px;line-height:1.68}

/* PAGE HEAD */
.page-head{
  padding:170px 0 74px;
  background:
    radial-gradient(circle at 92% 22%, rgba(116,184,187,.20), transparent 18%),
    radial-gradient(circle at 8% 78%, rgba(223,118,94,.14), transparent 16%),
    var(--cream-2)
}
.page-head h1{
  font-size:clamp(68px,10vw,158px);line-height:.8;
  letter-spacing:-.07em;font-weight:500;margin:0
}
.page-head p{max-width:720px;color:var(--muted);font-size:16px;line-height:1.7;margin:38px 0 0}
.gallery-stack .project{margin-bottom:58px}

/* PARTNERS */
.partner-card{
  padding:34px;
  margin-bottom:18px;
  display:grid;grid-template-columns:.35fr 1.15fr .5fr;gap:50px;align-items:start;
  border-radius:30px;
  background:rgba(255,255,255,.65);
  border:1px solid rgba(18,60,52,.08)
}
.partner-card:nth-child(2){background:rgba(207,234,236,.65)}
.partner-card:nth-child(3){background:rgba(239,230,168,.65)}
.partner-card h2{
  font-size:clamp(52px,7vw,104px);letter-spacing:-.06em;line-height:.85;margin:0
}
.partner-card p{color:var(--muted);line-height:1.7;max-width:650px;margin:0}
.partner-card .go{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.16em}
.partner-logo{margin-bottom:24px}.partner-logo img{width:min(420px,80%);height:auto}

/* CONTACT */
.contact-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:42px;padding-bottom:120px}
.contact-aside{display:flex;flex-direction:column;gap:30px}
.info-card{
  padding:30px;
  background:linear-gradient(160deg,var(--aqua),var(--mint));
  border-radius:30px
}
.info-card h3{font-size:25px;letter-spacing:-.03em;font-weight:500;margin:0 0 24px}
.info-item{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:18px 0;border-top:1px solid rgba(18,60,52,.12)}
.info-item span{font-size:10px;color:var(--forest-2);font-weight:800}
.info-item strong{display:block;font-size:14px;margin-bottom:5px}
.info-item p{margin:0;color:#547067;font-size:13px;line-height:1.55}
.form-card{
  background:#fff;
  border-radius:34px;
  padding:42px;
  box-shadow:0 26px 80px rgba(18,60,52,.09)
}
.form-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:32px}
.form-head h2{font-size:clamp(34px,4vw,58px);letter-spacing:-.045em;font-weight:500;margin:0}
.form-head p{max-width:380px;color:var(--muted);font-size:12px;line-height:1.55;margin:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{
  padding:15px 17px;
  border-radius:18px;
  background:var(--cream-2);
  border:1px solid rgba(18,60,52,.09)
}
.field.full{grid-column:1/-1}
.field label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--forest-2);font-weight:800;margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;border:0;background:transparent;color:var(--ink);padding:5px 0;outline:none;font-size:16px}
.field textarea{min-height:135px;resize:vertical;line-height:1.5}
.form-footer{padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:26px}
.consent{display:flex;gap:11px;align-items:flex-start;max-width:620px;color:var(--muted);font-size:11px;line-height:1.5}
.consent input{margin-top:2px}
.submit{
  flex:none;background:linear-gradient(135deg,var(--forest),var(--forest-2));
  color:#fff;border:0;border-radius:999px;padding:14px 22px;
  font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.13em;cursor:pointer
}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* FOOTER */
.footer{
  padding:70px 0 34px;
  background:var(--forest);
  color:white
}
.footer-main{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end}
.footer-logo{
  background:rgba(255,255,255,.94);
  width:max-content;max-width:100%;
  padding:18px;border-radius:24px
}
.footer-logo img{width:min(270px,78vw);opacity:.96}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:18px 34px;font-size:11px;text-transform:uppercase;letter-spacing:.13em}
.footer-bottom{
  margin-top:60px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;justify-content:space-between;gap:20px;color:#b7ccc4;
  font-size:9px;text-transform:uppercase;letter-spacing:.13em
}

@media(max-width:1040px){
  .nav{grid-template-columns:auto 1fr auto}
  .navlinks{
    display:none;position:absolute;top:79px;left:16px;right:16px;
    background:var(--cream-2);border:1px solid var(--line);padding:22px;
    border-radius:24px;flex-direction:column;align-items:flex-start
  }
  .navlinks.open{display:flex}
  .menu{display:block}
}
@media(max-width:900px){
  .wrap{width:min(100% - 32px,var(--max))}
  .hero-intro,.section-title-row,.project-info,.services-grid,.about,.footer-main,.contact-layout,.partner-card{grid-template-columns:1fr}
  .hero-side{justify-self:start}
  .display{font-size:clamp(62px,18vw,112px)}
  .section{padding:92px 0}
  .split-projects{grid-template-columns:1fr}
  .split-projects .project{margin-bottom:28px}
  .award-grid{grid-template-columns:1fr}
  .partner-card .go{text-align:left}
  .form-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:680px){
  .header{height:auto;min-height:66px}
  .nav{min-height:66px;grid-template-columns:1fr auto}
  .wordmark{font-size:10px}
  .lang-switch{grid-column:1/-1;width:100%;justify-content:center;margin-bottom:8px}
  .flag-link{width:42px;height:31px}
  .navlinks{top:109px}
  .hero{padding-top:109px}
  .hero-intro{min-height:auto;gap:30px;padding:42px 0 32px}
  .display{font-size:58px;line-height:.85}
  .hero-side{padding:22px}
  .photo-meta{font-size:8px;letter-spacing:.1em;flex-direction:column;gap:6px}
  .section-title{font-size:50px}
  .project{margin-bottom:34px;padding:14px;border-radius:26px}
  .project-media{border-radius:18px}
  .project-title{font-size:36px}
  .project-data{grid-template-columns:1fr}
  .sponsor-logo img{width:min(340px,84vw)}
  .form-card{padding:24px 18px}
  .form-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .form-footer{align-items:stretch;flex-direction:column}
  .submit{width:100%}
  .footer-bottom{flex-direction:column}
}

/* V5.1 — ORIGINAL NATURE AQUARIUM LOGO IN HEADER */
.wordmark.original-logo{
  display:flex;
  align-items:center;
  width:auto;
  height:68px;
  padding:5px 0;
}
.wordmark.original-logo img{
  width:auto;
  height:58px;
  max-width:150px;
  object-fit:contain;
}
.wordmark.original-logo + .navlinks{
  margin-left:10px;
}
.brand-dot{display:none!important;}

@media(max-width:1040px){
  .wordmark.original-logo{height:66px}
  .wordmark.original-logo img{height:54px;max-width:138px}
}
@media(max-width:680px){
  .wordmark.original-logo{height:58px}
  .wordmark.original-logo img{height:48px;max-width:122px}
}


/* =====================================================
   V6 HERO — photograph, brand and message in one screen
   ===================================================== */
.header-brand-text{
  height:auto!important;
  padding:0!important;
  width:auto!important;
}
.header-brand-text span{
  font-size:12px;
  font-weight:850;
  letter-spacing:.18em;
  text-transform:uppercase;
  white-space:nowrap;
}
.header-brand-text img{display:none!important;}

.hero-v6{
  padding:80px 0 24px!important;
  background:var(--cream)!important;
}
.hero-stage{
  position:relative;
  min-height:clamp(600px,78vh,850px);
  overflow:hidden;
  border-radius:38px;
  background:#173d35;
  box-shadow:0 30px 90px rgba(18,60,52,.15);
}
.hero-stage-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.hero-stage-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(10,35,29,.55) 0%, rgba(10,35,29,.12) 42%, rgba(10,35,29,.06) 100%),
    linear-gradient(180deg, rgba(0,0,0,.03) 50%, rgba(0,0,0,.26) 100%);
}
.hero-brand-card{
  position:absolute;
  top:32px;
  left:32px;
  width:190px;
  min-height:152px;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(255,250,241,.93);
  backdrop-filter:blur(12px);
  border-radius:26px;
  box-shadow:0 16px 45px rgba(6,29,24,.14);
}
.hero-brand-logo{
  width:100%;
  height:auto;
}
.hero-copy-card{
  position:absolute;
  left:32px;
  bottom:34px;
  width:min(650px,calc(100% - 64px));
  padding:34px 36px;
  border-radius:30px;
  background:rgba(255,250,241,.92);
  backdrop-filter:blur(16px);
  box-shadow:0 18px 55px rgba(7,29,24,.18);
}
.hero-v6-kicker{
  font-size:10px;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--forest-2);
  margin-bottom:13px;
}
.hero-copy-card h1{
  margin:0;
  font-size:clamp(48px,6.2vw,100px);
  line-height:.88;
  letter-spacing:-.065em;
  font-weight:500;
  color:var(--forest);
}
.hero-copy-card p{
  max-width:540px;
  margin:22px 0 24px;
  color:#607168;
  line-height:1.62;
  font-size:15px;
}
.hero-v6-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 17px;
  background:var(--forest);
  color:#fff;
  border-radius:999px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.hero-v6-meta{
  position:absolute;
  right:30px;
  bottom:28px;
  padding:9px 13px;
  background:rgba(18,60,52,.78);
  color:#fff;
  backdrop-filter:blur(10px);
  border-radius:999px;
  font-size:9px;
  font-weight:750;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.about-photo{
  padding:0!important;
  overflow:hidden;
  background:#173d35!important;
}
.about-photo img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover;
}

@media(max-width:900px){
  .hero-stage{
    min-height:720px;
    border-radius:28px;
  }
  .hero-stage-photo{
    object-position:58% center;
  }
  .hero-brand-card{
    top:22px;
    left:22px;
    width:150px;
    min-height:120px;
    border-radius:22px;
    padding:14px;
  }
  .hero-copy-card{
    left:22px;
    bottom:22px;
    width:calc(100% - 44px);
    padding:28px;
  }
  .hero-v6-meta{
    display:none;
  }
}
@media(max-width:680px){
  .hero-v6{
    padding-top:109px!important;
  }
  .hero-stage{
    min-height:680px;
    border-radius:24px;
  }
  .hero-stage-photo{
    object-position:62% center;
  }
  .hero-brand-card{
    width:128px;
    min-height:102px;
  }
  .hero-copy-card h1{
    font-size:48px;
  }
  .hero-copy-card p{
    font-size:14px;
    margin:17px 0 20px;
  }
}


/* V6.1 TRUE COLOUR PHOTOS
   Aquarium photographs must be shown exactly as supplied:
   no tint, filter, blend, opacity or coloured overlay. */
.hero-stage-shade{
  display:none!important;
}
.hero-stage-photo,
.hero-photo img,
.project-media img,
.about-photo img{
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  background:transparent!important;
}
.hero-stage-photo{
  /* Preserve the photo itself; cropping only comes from the hero container. */
  color-adjust:exact;
  print-color-adjust:exact;
}
.project-media,
.hero-photo,
.about-photo{
  isolation:isolate;
}


/* =======================================================
   V7 HOMEPAGE — service-first, clear first impression
   ======================================================= */
.v7-header-logo{
  width:132px!important;
  height:70px!important;
  padding:4px 0!important;
  display:flex!important;
  align-items:center!important;
}
.v7-header-logo img{
  width:100%!important;
  height:62px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
.home-v7{background:var(--cream)}
.home-hero-v7{
  padding:128px 0 72px;
  background:
    radial-gradient(circle at 5% 5%, rgba(116,184,187,.17), transparent 22%),
    radial-gradient(circle at 94% 20%, rgba(223,118,94,.14), transparent 19%),
    var(--cream-2);
}
.home-hero-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:54px;
  align-items:center;
}
.home-hero-copy{padding:18px 0}
.home-eyebrow{
  display:inline-flex;
  padding:8px 12px;
  background:var(--mint);
  border-radius:999px;
  font-size:10px;
  font-weight:850;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--forest-2)
}
.home-hero-copy h1{
  font-size:clamp(58px,6.8vw,112px);
  line-height:.88;
  letter-spacing:-.065em;
  font-weight:500;
  margin:25px 0 28px;
}
.home-lead{
  max-width:690px;
  font-size:18px;
  line-height:1.65;
  color:var(--muted);
  margin:0;
}
.home-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}
.home-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 20px;
  border-radius:999px;
  font-size:10px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.home-btn.primary{background:var(--forest);color:#fff}
.home-btn.secondary{background:#fff;border:1px solid var(--line);color:var(--forest)}
.home-btn.ghost-light{margin-top:25px;border:1px solid rgba(255,255,255,.25);color:#fff}
.home-btn.final{background:#fff;color:var(--forest)}
.home-trust{
  margin-top:46px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.home-trust div{
  padding:18px;
  background:rgba(255,255,255,.64);
  border:1px solid rgba(18,60,52,.08);
  border-radius:20px;
}
.home-trust strong{
  display:block;
  font-size:31px;
  line-height:1;
  letter-spacing:-.04em;
}
.home-trust span{
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:10px;
  line-height:1.4;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.home-hero-visual{
  position:relative;
  overflow:hidden;
  border-radius:38px;
  box-shadow:0 28px 75px rgba(18,60,52,.14);
  background:#fff;
}
.home-hero-visual img{
  width:100%;
  height:auto;
  display:block;
  filter:none!important;
  opacity:1!important;
}
.home-photo-caption{
  position:absolute;
  right:18px;bottom:18px;
  padding:12px 15px;
  border-radius:16px;
  background:rgba(255,250,241,.92);
  backdrop-filter:blur(10px);
  font-size:10px;
}
.home-photo-caption strong{display:block;font-size:13px}
.home-photo-caption span{display:block;margin-top:3px;color:var(--muted)}

.home-services-v7{
  padding:105px 0;
  background:var(--mint);
}
.home-section-intro{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  align-items:end;
  margin-bottom:48px;
}
.home-section-tag{
  display:inline-flex;
  padding:7px 11px;
  border-radius:999px;
  background:#fff;
  color:var(--forest-2);
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.16em;
}
.home-section-tag.light{background:rgba(255,255,255,.10);color:#d4e8df}
.home-section-intro h2,
.home-proof-copy h2,
.home-about-copy h2,
.home-final-card h2{
  margin:15px 0 0;
  font-size:clamp(46px,5.8vw,92px);
  line-height:.9;
  letter-spacing:-.055em;
  font-weight:500;
}
.home-section-intro > p{
  max-width:600px;
  color:var(--muted);
  line-height:1.7;
  font-size:15px;
  margin:0;
}
.home-service-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.home-service-card{
  padding:25px;
  border-radius:28px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(18,60,52,.08);
  min-height:250px;
}
.home-service-card:nth-child(2){background:rgba(207,234,236,.8)}
.home-service-card:nth-child(3){background:rgba(245,210,196,.65)}
.home-service-card:nth-child(4){background:rgba(239,230,168,.65)}
.home-service-card > span{
  font-size:10px;font-weight:850;color:var(--forest-2)
}
.home-service-card h3{
  font-size:25px;
  font-weight:500;
  letter-spacing:-.035em;
  margin:45px 0 14px;
}
.home-service-card p{
  color:var(--muted);
  font-size:13px;
  line-height:1.65;
  margin:0;
}
.home-section-cta{text-align:right;margin-top:24px}
.home-section-cta a{
  font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.12em
}

.home-proof-v7{
  padding:110px 0;
  background:var(--forest);
  color:#fff;
}
.home-proof-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center;
}
.home-proof-copy p{
  max-width:610px;
  color:#bed0c8;
  line-height:1.7;
  font-size:15px;
  margin:26px 0 0;
}
.home-proof-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.proof-stat{
  padding:28px 20px;
  min-height:270px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-radius:28px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}
.proof-stat.accent{background:rgba(223,118,94,.22)}
.proof-stat strong{
  font-size:clamp(75px,7vw,125px);
  line-height:.8;
  letter-spacing:-.075em;
  font-weight:500;
}
.proof-stat span{
  color:#c5d8d0;
  font-size:10px;
  line-height:1.55;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.home-work-v7{
  padding:105px 0;
  background:var(--cream);
}
.home-work-grid{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:18px;
}
.home-work-main{grid-row:span 2}
.home-work-main,.home-work-side{
  position:relative;
  overflow:hidden;
  border-radius:30px;
  background:#fff;
  min-height:300px;
}
.home-work-main img,.home-work-side img{
  width:100%;height:100%;object-fit:cover;
  filter:none!important;opacity:1!important;
}
.home-work-meta{
  position:absolute;
  left:16px;right:16px;bottom:16px;
  display:flex;justify-content:space-between;gap:18px;align-items:end;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,250,241,.93);
  backdrop-filter:blur(10px);
  color:var(--forest);
  font-size:10px;
}
.home-work-meta strong{display:block;font-size:14px}
.home-work-meta span{display:block;margin-top:3px;color:var(--muted)}
.home-work-side{min-height:265px}

.home-about-v7{
  padding:105px 0;
  background:var(--peach);
}
.home-about-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.home-about-photo{
  border-radius:34px;
  overflow:hidden;
  min-height:540px;
}
.home-about-photo img{
  width:100%;height:100%;object-fit:cover;
  filter:none!important;opacity:1!important;
}
.home-about-copy{
  padding:46px;
  border-radius:34px;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.home-about-copy p{
  max-width:650px;
  color:var(--muted);
  font-size:16px;
  line-height:1.75;
  margin:28px 0;
}

.home-partner-v7{
  padding:72px 0;
  background:#fff;
}
.home-partner-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  align-items:center;
}
.home-partner-inner p{
  max-width:540px;
  color:var(--muted);
  line-height:1.6;
  margin:16px 0 0;
}
.home-partner-inner a{justify-self:end}
.home-partner-inner img{
  width:min(430px,42vw);
  height:auto;
}

.home-final-v7{
  padding:85px 0;
  background:var(--lemon);
}
.home-final-card{
  padding:48px;
  border-radius:36px;
  background:var(--forest);
  color:#fff;
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px;
  align-items:end;
}
.home-final-card p{
  max-width:650px;
  margin:25px 0 0;
  color:#bed0c8;
  line-height:1.65;
}

@media(max-width:1050px){
  .home-hero-grid,
  .home-section-intro,
  .home-proof-grid,
  .home-about-grid,
  .home-partner-inner{
    grid-template-columns:1fr;
  }
  .home-service-grid{grid-template-columns:1fr 1fr}
  .home-proof-stats{grid-template-columns:repeat(3,1fr)}
  .home-work-grid{grid-template-columns:1fr}
  .home-work-main{grid-row:auto}
  .home-partner-inner a{justify-self:start}
  .home-partner-inner img{width:min(430px,80vw)}
}
@media(max-width:680px){
  .v7-header-logo{width:105px!important;height:58px!important}
  .v7-header-logo img{height:52px!important}
  .home-hero-v7{padding-top:120px}
  .home-hero-copy h1{font-size:52px}
  .home-lead{font-size:15px}
  .home-trust{grid-template-columns:1fr}
  .home-service-grid{grid-template-columns:1fr}
  .home-service-card{min-height:auto}
  .home-service-card h3{margin-top:28px}
  .home-proof-stats{grid-template-columns:1fr}
  .proof-stat{min-height:190px}
  .home-work-main,.home-work-side{min-height:260px}
  .home-about-photo{min-height:330px}
  .home-about-copy{padding:28px}
  .home-final-card{grid-template-columns:1fr;padding:30px}
  .home-final-card h2{font-size:48px}
}


/* =======================================================
   V7.3 — DARK INNER-PAGE HEADERS
   Reuse the strong dark-green visual language from the CTA.
   ======================================================= */
.page-head{
  padding:128px 0 54px!important;
  background:var(--lemon)!important;
}

.page-head > .wrap{
  background:var(--forest);
  color:#fff;
  padding:58px 54px 62px;
  border-radius:36px;
  position:relative;
  overflow:hidden;
  box-shadow:0 22px 65px rgba(18,60,52,.12);
}

/* subtle graphic shapes, without tinting any aquarium photography */
.page-head > .wrap::before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  border-radius:50%;
  right:-85px;
  top:-115px;
  background:rgba(116,184,187,.13);
  pointer-events:none;
}

.page-head > .wrap::after{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  border-radius:50%;
  right:155px;
  bottom:-115px;
  background:rgba(223,118,94,.12);
  pointer-events:none;
}

.page-head .kicker{
  position:relative;
  z-index:1;
  background:rgba(255,255,255,.12)!important;
  color:#d7e9e2!important;
  border:1px solid rgba(255,255,255,.12);
}

.page-head h1{
  position:relative;
  z-index:1;
  color:#fff!important;
  font-size:clamp(58px,8vw,126px)!important;
  line-height:.86!important;
  max-width:1180px;
}

.page-head p{
  position:relative;
  z-index:1;
  color:#c4d6cf!important;
  max-width:760px!important;
  font-size:16px!important;
  line-height:1.7!important;
}

/* Contact page should move visually closer to the dark intro */
.page-head + .contact-layout{
  padding-top:34px;
}

/* Keep inner content airy after the stronger header */
.page-head + .section{
  padding-top:72px!important;
}

@media(max-width:900px){
  .page-head{
    padding:118px 0 38px!important;
  }
  .page-head > .wrap{
    padding:42px 34px 46px;
    border-radius:30px;
  }
  .page-head h1{
    font-size:clamp(48px,10vw,82px)!important;
  }
}

@media(max-width:680px){
  .page-head{
    padding-top:138px!important;
    background:var(--lemon)!important;
  }
  .page-head > .wrap{
    padding:34px 24px 38px;
    border-radius:26px;
  }
  .page-head h1{
    font-size:48px!important;
  }
  .page-head p{
    font-size:14px!important;
  }
}


/* =======================================================
   V7.4 — PARTNERS + DIRECT CONTACT + SOCIALS
   ======================================================= */
.akvarista-logo{
  background:#fff;
  display:inline-flex;
  padding:14px 18px;
  border-radius:18px;
  max-width:520px;
}
.akvarista-logo img{
  width:min(440px,100%);
  height:auto;
}
.partner-card-akvarista{
  background:rgba(207,234,236,.72)!important;
}

.home-partners-v74{
  padding:76px 0!important;
  background:#fff!important;
}
.home-partners-head{
  display:grid;
  grid-template-columns:.55fr 1.45fr;
  gap:40px;
  align-items:end;
  margin-bottom:28px;
}
.home-partners-head p{
  max-width:680px;
  margin:0;
  color:var(--muted);
  line-height:1.65;
  font-size:14px;
}
.home-partners-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.home-partner-brand{
  min-height:190px;
  border-radius:28px;
  padding:28px;
  background:var(--peach);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:22px;
  border:1px solid rgba(18,60,52,.08);
}
.home-partner-brand:nth-child(2){
  background:var(--aqua);
}
.home-partner-brand img{
  max-width:min(460px,82%);
  max-height:95px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.home-partner-brand.akvarista-home img{
  background:#fff;
  padding:8px 12px;
  border-radius:12px;
  max-height:110px;
}
.home-partner-brand span{
  font-size:10px;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--forest);
}

.contact-direct-card{
  background:var(--forest)!important;
  color:#fff;
}
.contact-direct-card h3{
  color:#fff;
}
.direct-contact-row{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:17px 0;
  border-top:1px solid rgba(255,255,255,.15);
}
.direct-contact-row span,
.contact-social-label{
  color:#b8cec5;
  font-size:9px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:800;
}
.direct-contact-row strong{
  color:#fff;
  font-size:16px;
  font-weight:600;
}
.contact-social-label{
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.15);
}
.contact-socials{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin-top:12px;
}
.contact-socials a{
  padding:10px 13px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}

.footer-contact-v74{
  margin-top:46px;
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.14);
}
.footer-contact-v74 a{
  color:#d6e4df;
  font-size:11px;
  letter-spacing:.05em;
}
.footer-contact-v74 a:hover{
  color:#fff;
}

@media(max-width:900px){
  .home-partners-head,
  .home-partners-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:680px){
  .home-partner-brand{
    min-height:150px;
    padding:22px;
  }
  .footer-contact-v74{
    flex-direction:column;
  }
}


/* =======================================================
   V7.6 — UNIFIED DARK HEADER + FOOTER NAVIGATION
   ======================================================= */

.header{
  background:rgba(18,60,52,.96)!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 8px 30px rgba(18,60,52,.12);
}

.header .nav{
  color:#fff;
}

/* Keep the original logo untouched; place it on a light tile */
.v7-header-logo{
  background:#f7f1e5!important;
  border-radius:10px!important;
  padding:5px 8px!important;
  width:118px!important;
  height:60px!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.08);
}
.v7-header-logo img{
  width:100%!important;
  height:50px!important;
  object-fit:contain!important;
}

.header .navlinks a{
  color:#eef5f1!important;
  opacity:.64!important;
}
.header .navlinks a:hover,
.header .navlinks a.active{
  color:#fff!important;
  opacity:1!important;
}

.header .lang-switch{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(255,255,255,.14)!important;
}
.header .flag-link:hover{
  background:rgba(255,255,255,.12)!important;
}
.header .flag-link.active{
  background:#fff!important;
}
.header .flag-link.active img{
  box-shadow:0 0 0 2px #fff!important;
}

.header .menu{
  color:#fff!important;
}

/* Footer uses the same navigation language and rhythm as the header */
.footer{
  background:var(--forest)!important;
  color:#fff!important;
}
.footer-main{
  align-items:center!important;
}
.footer-links-v76{
  display:flex!important;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:14px 28px!important;
  font-size:10px!important;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.footer-links-v76 a{
  color:#eaf3ef!important;
  opacity:.72;
}
.footer-links-v76 a:hover{
  opacity:1;
}

/* Remove the visual feeling that Yokuchi is part of site navigation */
.footer-links-v76 a[href*="yokuchi"]{
  display:none!important;
}

/* Contact/social row stays separate from navigation */
.footer-contact-v74{
  margin-top:34px!important;
  padding-top:18px!important;
}

/* Inner page dark headers now meet the dark global header more naturally */
.page-head{
  background:var(--lemon)!important;
}

/* Mobile menu also follows the dark navigation */
@media(max-width:1040px){
  .header .navlinks{
    background:var(--forest)!important;
    border-color:rgba(255,255,255,.12)!important;
    box-shadow:0 20px 50px rgba(18,60,52,.22);
  }
  .header .navlinks a{
    color:#fff!important;
  }
}
@media(max-width:680px){
  .v7-header-logo{
    width:98px!important;
    height:52px!important;
    padding:4px 7px!important;
  }
  .v7-header-logo img{
    height:43px!important;
  }
  .footer-links-v76{
    justify-content:flex-start;
    flex-direction:column;
    gap:12px!important;
  }
}


/* =======================================================
   V7.7 — EDITORIAL / AQUASCAPING VISUAL LANGUAGE
   ======================================================= */

/* Exact original uploaded logo — no cropping, recolouring or modification */
.header{
  height:88px!important;
}
.nav{
  min-height:88px!important;
}
.exact-brand-logo{
  width:126px!important;
  height:72px!important;
  padding:7px 10px!important;
  border-radius:16px!important;
  background:#f8f2e7!important;
  overflow:hidden;
}
.exact-brand-logo img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:contain!important;
  filter:none!important;
  opacity:1!important;
}
.exact-footer-logo{
  background:#f8f2e7!important;
  width:210px!important;
  padding:14px!important;
  border-radius:24px!important;
}
.exact-footer-logo img{
  width:100%!important;
  height:auto!important;
  filter:none!important;
  opacity:1!important;
}

/* HERO: layered editorial composition */
.home-hero-editorial{
  position:relative;
  overflow:hidden;
  padding-top:150px!important;
  padding-bottom:112px!important;
  background:
    radial-gradient(circle at 86% 20%, rgba(223,118,94,.11), transparent 20%),
    linear-gradient(135deg,#fbf7ed 0%,#f7f1e5 55%,#eef6f1 100%)!important;
}
.hero-art-layer{
  position:absolute;
  inset:0;
  pointer-events:none;
  background-repeat:no-repeat;
  z-index:0;
}
.hero-art-flow{
  background-size:min(920px,70vw) auto;
  background-position:left -150px bottom -130px;
  opacity:.82;
}
.hero-art-contour{
  background-size:min(700px,48vw) auto;
  background-position:right -120px top 50px;
  opacity:.72;
}
.home-hero-editorial::before{
  content:"";
  position:absolute;
  width:430px;
  height:430px;
  border-radius:46% 54% 57% 43% / 44% 42% 58% 56%;
  right:7%;
  top:115px;
  background:rgba(207,234,236,.48);
  transform:rotate(-8deg);
  z-index:0;
}
.home-hero-editorial::after{
  content:"";
  position:absolute;
  width:240px;
  height:240px;
  border-radius:50%;
  right:28%;
  bottom:28px;
  border:1px solid rgba(18,60,52,.12);
  z-index:0;
}
.home-hero-editorial .home-hero-grid{
  position:relative;
  z-index:2;
}
.home-hero-copy{
  position:relative;
}
.home-hero-copy::before{
  content:"";
  position:absolute;
  width:74px;
  height:3px;
  background:var(--coral);
  left:0;
  top:-28px;
  border-radius:999px;
}
.home-hero-copy h1{
  max-width:760px;
  text-wrap:balance;
}
.home-lead{
  max-width:660px!important;
}
.home-hero-visual{
  border-radius:18px 70px 18px 70px!important;
  box-shadow:
    0 34px 80px rgba(18,60,52,.16),
    -18px 18px 0 rgba(217,238,231,.62)!important;
  transform:translateY(22px);
}
.home-photo-caption{
  right:20px!important;
  bottom:20px!important;
  border-radius:999px!important;
  padding:12px 17px!important;
  box-shadow:0 8px 30px rgba(18,60,52,.10);
}
.home-trust{
  max-width:690px;
  gap:0!important;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.home-trust div{
  background:transparent!important;
  border:0!important;
  border-right:1px solid var(--line)!important;
  border-radius:0!important;
  padding:20px 24px 20px 0!important;
}
.home-trust div:not(:first-child){
  padding-left:24px!important;
}
.home-trust div:last-child{
  border-right:0!important;
}

/* SERVICES: one strong dark "studio" block, less card-template feeling */
.home-services-editorial{
  background:#f7f1e5!important;
  padding:88px 0 105px!important;
}
.home-services-editorial > .wrap{
  position:relative;
  overflow:hidden;
  padding:62px;
  border-radius:42px;
  color:#fff;
  background:
    radial-gradient(circle at 92% 12%, rgba(116,184,187,.20), transparent 22%),
    radial-gradient(circle at 4% 96%, rgba(223,118,94,.13), transparent 24%),
    var(--forest);
  box-shadow:0 28px 75px rgba(18,60,52,.12);
}
.home-services-editorial > .wrap::after{
  content:"";
  position:absolute;
  width:580px;
  height:430px;
  right:-145px;
  bottom:-180px;
  background:url("assets/flow-lines.svg") no-repeat center/contain;
  opacity:.22;
  filter:brightness(3);
  pointer-events:none;
}
.home-services-editorial .home-section-intro,
.home-services-editorial .home-service-grid,
.home-services-editorial .home-section-cta{
  position:relative;
  z-index:2;
}
.home-services-editorial .home-section-tag{
  background:rgba(255,255,255,.10)!important;
  color:#d7e9e2!important;
}
.home-services-editorial .home-section-intro > p{
  color:#c1d1cb!important;
}
.home-services-editorial .home-service-grid{
  grid-template-columns:repeat(2,1fr)!important;
  gap:1px!important;
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  overflow:hidden;
  background:rgba(255,255,255,.12);
}
.home-services-editorial .home-service-card,
.home-services-editorial .home-service-card:nth-child(n){
  min-height:230px!important;
  padding:30px!important;
  border:0!important;
  border-radius:0!important;
  background:rgba(255,255,255,.055)!important;
}
.home-services-editorial .home-service-card:hover{
  background:rgba(255,255,255,.10)!important;
}
.home-services-editorial .home-service-card > span{
  color:#9ec3b7!important;
}
.home-services-editorial .home-service-card h3{
  color:#fff!important;
  margin-top:54px!important;
}
.home-services-editorial .home-service-card p{
  color:#bfd0ca!important;
}
.home-services-editorial .home-section-cta a{
  color:#fff!important;
}

/* WORK: subtle contour graphic, photos remain absolutely untouched */
.home-work-editorial{
  position:relative;
  overflow:hidden;
  background:#fbf7ed!important;
}
.home-work-editorial::before{
  content:"";
  position:absolute;
  width:780px;
  height:540px;
  left:-180px;
  bottom:-80px;
  background:url("assets/contour-lines.svg") no-repeat center/contain;
  opacity:.75;
  pointer-events:none;
}
.home-work-editorial > .wrap{
  position:relative;
  z-index:1;
}
.home-work-main,
.home-work-side{
  box-shadow:0 18px 55px rgba(18,60,52,.08);
}
.home-work-main{
  border-radius:54px 18px 54px 18px!important;
}
.home-work-side:first-of-type{
  border-radius:18px 44px 18px 44px!important;
}
.home-work-side:last-of-type{
  border-radius:44px 18px 44px 18px!important;
}

/* Slightly more crafted section headings */
.home-section-intro h2,
.home-proof-copy h2,
.home-final-card h2{
  text-wrap:balance;
}
.home-section-intro > div::after{
  content:"";
  display:block;
  width:54px;
  height:2px;
  margin-top:22px;
  background:var(--coral);
}

/* Partner area: cleaner / less promotional-card style */
.home-partners-v74{
  background:#eef3ec!important;
}
.home-partners-grid{
  gap:22px!important;
}
.home-partner-brand{
  background:#fff!important;
  border-radius:34px!important;
  box-shadow:0 16px 45px rgba(18,60,52,.06);
}
.home-partner-brand:nth-child(2){
  background:#fff!important;
}

/* Inner pages also get a touch of graphic depth */
.page-head{
  position:relative;
  overflow:hidden;
}
.page-head::after{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/flow-lines.svg") no-repeat right -160px top -160px / 650px auto;
  opacity:.17;
  pointer-events:none;
}
.page-head > .wrap{
  position:relative;
  z-index:1;
}

/* Keep EVERY aquascape photo true-colour */
.home-hero-visual img,
.home-work-main img,
.home-work-side img,
.project-media img,
.hero-photo img{
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}

@media(max-width:1040px){
  .header{
    height:82px!important;
  }
  .nav{
    min-height:82px!important;
  }
  .exact-brand-logo{
    width:112px!important;
    height:66px!important;
  }
  .home-hero-editorial{
    padding-top:132px!important;
  }
  .home-services-editorial > .wrap{
    padding:44px;
  }
}
@media(max-width:680px){
  .header{
    min-height:108px!important;
  }
  .exact-brand-logo{
    width:92px!important;
    height:58px!important;
    border-radius:12px!important;
  }
  .home-hero-editorial{
    padding-top:145px!important;
    padding-bottom:72px!important;
  }
  .hero-art-flow{
    background-size:720px auto;
    background-position:left -300px bottom -100px;
  }
  .hero-art-contour{
    opacity:.35;
  }
  .home-hero-editorial::before{
    width:300px;
    height:300px;
    right:-90px;
    top:160px;
  }
  .home-hero-visual{
    transform:none;
    border-radius:16px 42px 16px 42px!important;
    box-shadow:0 22px 55px rgba(18,60,52,.13)!important;
  }
  .home-trust{
    grid-template-columns:1fr!important;
  }
  .home-trust div,
  .home-trust div:not(:first-child){
    border-right:0!important;
    border-bottom:1px solid var(--line)!important;
    padding:16px 0!important;
  }
  .home-trust div:last-child{
    border-bottom:0!important;
  }
  .home-services-editorial{
    padding:55px 0 70px!important;
  }
  .home-services-editorial > .wrap{
    padding:30px 20px;
    border-radius:28px;
  }
  .home-services-editorial .home-service-grid{
    grid-template-columns:1fr!important;
  }
  .home-services-editorial .home-service-card{
    min-height:auto!important;
  }
  .home-services-editorial .home-service-card h3{
    margin-top:28px!important;
  }
  .exact-footer-logo{
    width:160px!important;
  }
}


/* =======================================================
   V7.8 — LIGHTENED REAL AQUASCAPE PHOTO IN HERO BACKGROUND
   ======================================================= */

.home-hero-photo-bg{
  background:
    linear-gradient(
      90deg,
      rgba(250,247,239,.91) 0%,
      rgba(250,247,239,.82) 43%,
      rgba(250,247,239,.74) 100%
    ),
    url("assets/hero-photo-background-light.webp") center / cover no-repeat!important;
}

/* Keep abstract decoration only as a subtle secondary layer. */
.home-hero-photo-bg .hero-art-flow{
  opacity:.20!important;
}
.home-hero-photo-bg .hero-art-contour{
  opacity:.13!important;
}
.home-hero-photo-bg::before{
  opacity:.14!important;
}
.home-hero-photo-bg::after{
  opacity:.22!important;
}

/* Soft translucent area behind copy for readability. */
.home-hero-photo-bg .home-hero-copy{
  position:relative;
}
.home-hero-photo-bg .home-hero-copy::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:-34px;
  right:-22px;
  top:-40px;
  bottom:-30px;
  border-radius:34px;
  background:rgba(250,247,239,.48);
  backdrop-filter:blur(2px);
}

/* Main hero aquarium photo remains exact / untouched. */
.home-hero-photo-bg .home-hero-visual img{
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}

@media(max-width:900px){
  .home-hero-photo-bg{
    background:
      linear-gradient(rgba(250,247,239,.86),rgba(250,247,239,.82)),
      url("assets/hero-photo-background-light.webp") center / cover no-repeat!important;
  }
}


/* =======================================================
   V7.9 — VISIBLE REAL PHOTO BACKGROUND + EXACT LOGO
   ======================================================= */

/* Exact original uploaded logo. No crop, no redraw, no replacement symbol. */
.header{
  height:96px!important;
}
.nav{
  min-height:96px!important;
}
.v79-logo{
  width:162px!important;
  height:84px!important;
  padding:0!important;
  margin:0!important;
  background:#f7f1e5!important;
  border-radius:0!important;
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:none!important;
}
.v79-logo img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:none!important;
  opacity:1!important;
}

.v79-footer-logo{
  width:230px!important;
  padding:0!important;
  border-radius:0!important;
  background:#f7f1e5!important;
}
.v79-footer-logo img{
  width:100%!important;
  height:auto!important;
  filter:none!important;
  opacity:1!important;
}

/* HERO: use a real uploaded aquarium photo as a clearly visible, pale background. */
.home-hero-photo-bg{
  position:relative!important;
  isolation:isolate;
  background:#f8f3e8!important;
  overflow:hidden!important;
}

/* The photo is the ORIGINAL Closure JPG. It is only made pale by opacity. */
.home-hero-photo-bg::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  background:url("assets/hero-background-closure.webp") center / cover no-repeat!important;
  opacity:.22!important;
  filter:none!important;
  -webkit-filter:none!important;
  mix-blend-mode:normal!important;
  transform:scale(1.02);
  z-index:0!important;
  pointer-events:none!important;
}

/* A transparent cream wash keeps text readable but still lets the photo show. */
.home-hero-photo-bg::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  background:
    linear-gradient(
      90deg,
      rgba(250,247,239,.82) 0%,
      rgba(250,247,239,.64) 42%,
      rgba(250,247,239,.36) 72%,
      rgba(250,247,239,.18) 100%
    )!important;
  z-index:1!important;
  pointer-events:none!important;
}

/* Hide abstract graphics in the hero: the real aquarium now provides the texture. */
.home-hero-photo-bg .hero-art-layer{
  display:none!important;
}
.home-hero-photo-bg .home-hero-grid{
  position:relative!important;
  z-index:3!important;
}

/* Make the copy feel like an editorial panel, not a generic card. */
.home-hero-photo-bg .home-hero-copy{
  position:relative!important;
  padding:38px 40px 34px!important;
  background:rgba(250,247,239,.70)!important;
  border:1px solid rgba(18,60,52,.08)!important;
  border-radius:34px 10px 34px 10px!important;
  box-shadow:0 22px 60px rgba(18,60,52,.07)!important;
  backdrop-filter:blur(5px)!important;
}
.home-hero-photo-bg .home-hero-copy::after{
  display:none!important;
}

/* Keep the main hero image completely untouched. */
.home-hero-photo-bg .home-hero-visual{
  box-shadow:
    0 34px 80px rgba(18,60,52,.18),
    -14px 14px 0 rgba(217,238,231,.72)!important;
}
.home-hero-photo-bg .home-hero-visual img{
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}

/* Stats: stronger, cleaner, less template-like. */
.home-trust{
  margin-top:34px!important;
  border:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:10px!important;
}
.home-trust div,
.home-trust div:not(:first-child){
  position:relative;
  padding:18px 18px 17px!important;
  border:1px solid rgba(18,60,52,.10)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.62)!important;
}
.home-trust div::before{
  content:"";
  display:block;
  width:24px;
  height:3px;
  margin-bottom:13px;
  border-radius:999px;
  background:var(--coral);
}
.home-trust div:nth-child(2)::before{background:var(--sky)}
.home-trust div:nth-child(3)::before{background:var(--forest-2)}

/* Secondary CTA should remain visually subordinate. */
.home-btn.secondary{
  background:rgba(255,255,255,.48)!important;
  border:1px solid rgba(18,60,52,.20)!important;
}

/* Mobile adjustments */
@media(max-width:1040px){
  .header{height:88px!important}
  .nav{min-height:88px!important}
  .v79-logo{
    width:145px!important;
    height:76px!important;
  }
}
@media(max-width:680px){
  .header{
    min-height:126px!important;
  }
  .v79-logo{
    width:120px!important;
    height:68px!important;
  }
  .home-hero-photo-bg{
    padding-top:158px!important;
  }
  .home-hero-photo-bg::before{
    opacity:.18!important;
    background-position:58% center!important;
  }
  .home-hero-photo-bg::after{
    background:rgba(250,247,239,.64)!important;
  }
  .home-hero-photo-bg .home-hero-copy{
    padding:26px 22px!important;
    border-radius:26px 8px 26px 8px!important;
  }
  .home-trust{
    grid-template-columns:1fr!important;
  }
}



/* =======================================================
   V8.0 — FULL-WIDTH HERO PHOTO BACKGROUND + WHITE BRAND
   ======================================================= */

/* Dark header: use the supplied white logo directly, no cream tile. */
.header{
  height:94px!important;
}
.nav{
  min-height:94px!important;
}
.v80-logo{
  width:155px!important;
  height:78px!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
}
.v80-logo img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:left center!important;
  filter:none!important;
  opacity:1!important;
}

.v80-footer-logo{
  width:235px!important;
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
}
.v80-footer-logo img{
  width:100%!important;
  height:auto!important;
  filter:none!important;
  opacity:1!important;
}

/* Real Closure image covers the WHOLE hero background.
   Explicitly cancel every old blob/oval rule. */
.home-hero-photo-bg::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:0!important;
  transform:none!important;
  background:url("assets/hero-background-closure.webp") center center / cover no-repeat!important;
  opacity:.20!important;
  filter:none!important;
  -webkit-filter:none!important;
  mix-blend-mode:normal!important;
  z-index:0!important;
}

/* One restrained cream wash over the full image, also full rectangle. */
.home-hero-photo-bg::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:0!important;
  transform:none!important;
  background:
    linear-gradient(
      90deg,
      rgba(249,246,237,.80) 0%,
      rgba(249,246,237,.66) 39%,
      rgba(249,246,237,.48) 64%,
      rgba(249,246,237,.34) 100%
    )!important;
  z-index:1!important;
}

/* Remove old abstract layers from hero completely. */
.home-hero-photo-bg .hero-art-layer{
  display:none!important;
}

/* Keep content above full-background photo. */
.home-hero-photo-bg .home-hero-grid{
  position:relative!important;
  z-index:3!important;
}

/* Make copy panel slightly less boxy now the background itself has character. */
.home-hero-photo-bg .home-hero-copy{
  background:rgba(250,247,239,.66)!important;
  backdrop-filter:blur(4px)!important;
  border-radius:26px 8px 26px 8px!important;
  box-shadow:0 18px 52px rgba(18,60,52,.06)!important;
}

/* Main project image remains exact and unaffected. */
.home-hero-photo-bg .home-hero-visual img,
.home-work-main img,
.home-work-side img,
.project-media img{
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}

@media(max-width:1040px){
  .header{height:86px!important}
  .nav{min-height:86px!important}
  .v80-logo{
    width:138px!important;
    height:72px!important;
  }
}
@media(max-width:680px){
  .header{
    min-height:122px!important;
  }
  .v80-logo{
    width:116px!important;
    height:64px!important;
  }
  .home-hero-photo-bg{
    padding-top:154px!important;
  }
  .home-hero-photo-bg::before{
    background-position:58% center!important;
    opacity:.17!important;
  }
  .home-hero-photo-bg::after{
    background:rgba(249,246,237,.62)!important;
  }
}


/* =======================================================
   V8.1 — STRONGER FIRST-SCREEN HIERARCHY
   Photo first, shorter message, one elegant proof line.
   ======================================================= */

/* Header: slightly stronger and clearer without becoming bulky. */
.header{
  height:86px!important;
}
.nav{
  min-height:86px!important;
}
.v80-logo{
  width:142px!important;
  height:72px!important;
}
.header .navlinks{
  gap:32px!important;
  font-size:11.5px!important;
}
.header .navlinks a{
  opacity:.72!important;
  font-weight:700!important;
}
.header .navlinks a.active,
.header .navlinks a:hover{
  opacity:1!important;
}

/* Flags: keep them because this is an explicit design requirement,
   but remove the "e-shop pill" feeling. */
.header .lang-switch{
  background:transparent!important;
  border:0!important;
  padding:0!important;
  gap:8px!important;
}
.header .flag-link{
  width:31px!important;
  height:31px!important;
  padding:0!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.06)!important;
}
.header .flag-link img{
  width:20px!important;
  height:14px!important;
  border-radius:3px!important;
}
.header .flag-link.active{
  background:rgba(255,255,255,.18)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.18)!important;
}

/* Hero now begins almost immediately under navigation. */
.home-hero-v7.home-hero-editorial.home-hero-photo-bg{
  min-height:calc(100vh - 86px)!important;
  padding:108px 0 58px!important;
  display:flex!important;
  align-items:center!important;
}

/* Background photo remains full block, but slightly quieter. */
.home-hero-photo-bg::before{
  opacity:.16!important;
}
.home-hero-photo-bg::after{
  background:
    linear-gradient(
      90deg,
      rgba(249,246,237,.88) 0%,
      rgba(249,246,237,.74) 35%,
      rgba(249,246,237,.42) 60%,
      rgba(249,246,237,.16) 100%
    )!important;
}

/* Main split: text gets less width; real project image gets more. */
.home-hero-grid{
  grid-template-columns:.78fr 1.22fr!important;
  gap:54px!important;
  align-items:center!important;
}

/* Remove the large "card" feeling from copy. */
.home-hero-photo-bg .home-hero-copy{
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  max-width:670px!important;
}
.home-hero-copy::before{
  width:56px!important;
  top:-22px!important;
}

.home-hero-copy h1{
  font-size:clamp(58px,6.2vw,106px)!important;
  line-height:.88!important;
  max-width:660px!important;
  margin:22px 0 24px!important;
  text-wrap:balance!important;
}

.home-lead{
  max-width:620px!important;
  font-size:16px!important;
  line-height:1.68!important;
}

/* Main project photograph is clearly the visual hero. */
.home-hero-visual{
  transform:none!important;
  border-radius:18px 58px 18px 58px!important;
  box-shadow:
    0 34px 85px rgba(18,60,52,.18),
    -12px 12px 0 rgba(217,238,231,.66)!important;
}
.home-hero-visual img{
  width:100%!important;
  height:auto!important;
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
}

/* Smaller, cleaner caption. */
.home-photo-caption{
  right:16px!important;
  bottom:16px!important;
  padding:10px 14px!important;
  border-radius:999px!important;
  font-size:9px!important;
}

/* CTA: one clear main action, one quiet secondary action. */
.home-actions{
  gap:16px!important;
  margin-top:28px!important;
}
.home-btn.primary{
  box-shadow:0 8px 24px rgba(18,60,52,.13);
}
.home-btn.secondary{
  border:0!important;
  border-radius:0!important;
  padding:13px 2px 8px!important;
  background:transparent!important;
  border-bottom:1px solid rgba(18,60,52,.35)!important;
}

/* Proof is now a single elegant strip, not three cards. */
.home-trust{
  margin-top:40px!important;
  display:flex!important;
  align-items:stretch!important;
  gap:0!important;
  max-width:700px!important;
  border-top:1px solid rgba(18,60,52,.18)!important;
  border-bottom:1px solid rgba(18,60,52,.18)!important;
}
.home-trust div,
.home-trust div:not(:first-child){
  flex:1 1 0!important;
  padding:17px 24px!important;
  border:0!important;
  border-right:1px solid rgba(18,60,52,.18)!important;
  border-radius:0!important;
  background:transparent!important;
}
.home-trust div:first-child{
  padding-left:0!important;
}
.home-trust div:last-child{
  border-right:0!important;
}
.home-trust div::before{
  display:none!important;
}
.home-trust strong{
  font-size:27px!important;
}
.home-trust span{
  font-size:9px!important;
  letter-spacing:.08em!important;
}

/* Keep the background photo readable instead of burying it under decorations. */
.home-hero-photo-bg .hero-art-layer{
  display:none!important;
}

/* Smooth micro-interaction on the main project photo only. */
.home-hero-visual{
  overflow:hidden!important;
}
.home-hero-visual img{
  transition:transform .7s cubic-bezier(.2,.7,.2,1)!important;
}
.home-hero-visual:hover img{
  transform:scale(1.015)!important;
}

/* Desktop width tuning. */
@media(min-width:1400px){
  .home-hero-grid{
    grid-template-columns:.74fr 1.26fr!important;
  }
}

/* Tablet */
@media(max-width:1050px){
  .home-hero-v7.home-hero-editorial.home-hero-photo-bg{
    min-height:auto!important;
    padding:126px 0 78px!important;
  }
  .home-hero-grid{
    grid-template-columns:1fr!important;
  }
  .home-hero-copy{
    max-width:820px!important;
  }
  .home-hero-visual{
    margin-top:8px!important;
  }
}

/* Mobile */
@media(max-width:680px){
  .header{
    min-height:118px!important;
  }
  .home-hero-v7.home-hero-editorial.home-hero-photo-bg{
    padding:144px 0 58px!important;
  }
  .home-hero-copy h1{
    font-size:49px!important;
  }
  .home-lead{
    font-size:14px!important;
  }
  .home-trust{
    display:grid!important;
    grid-template-columns:1fr!important;
    border-bottom:0!important;
  }
  .home-trust div,
  .home-trust div:not(:first-child){
    border-right:0!important;
    border-bottom:1px solid rgba(18,60,52,.18)!important;
    padding:13px 0!important;
  }
  .home-hero-visual{
    border-radius:14px 36px 14px 36px!important;
    box-shadow:0 22px 55px rgba(18,60,52,.14)!important;
  }
}


/* =======================================================
   V8.5 — BOOKING NAV + PLACEHOLDER BOOKING PAGE
   ======================================================= */

.header .navlinks .booking-nav{
  opacity:1!important;
  padding:9px 14px!important;
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:999px!important;
  color:#fff!important;
}
.header .navlinks .booking-nav::before{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  margin-right:8px;
  border:1.5px solid currentColor;
  border-radius:2px;
  vertical-align:1px;
  box-shadow:inset 0 2px 0 transparent;
}
.header .navlinks .booking-nav:hover,
.header .navlinks .booking-nav.active{
  background:#fff!important;
  color:var(--forest)!important;
}

.booking-page{
  background:#f6f0e4;
}
.booking-hero{
  padding:138px 0 74px;
  background:
    radial-gradient(circle at 86% 20%, rgba(116,184,187,.18), transparent 22%),
    #f6f0e4;
}
.booking-hero-inner{
  min-height:420px;
  padding:58px;
  border-radius:40px;
  background:var(--forest);
  color:#fff;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:40px;
  align-items:center;
  overflow:hidden;
  position:relative;
}
.booking-hero .kicker{
  background:rgba(255,255,255,.10)!important;
  color:#d7e9e2!important;
}
.booking-hero h1{
  margin:16px 0 20px;
  font-size:clamp(58px,7vw,110px);
  line-height:.9;
  letter-spacing:-.06em;
  font-weight:500;
}
.booking-hero p{
  max-width:650px;
  margin:0;
  color:#c4d7cf;
  line-height:1.7;
  font-size:16px;
}

.calendar-art{
  display:grid;
  place-items:center;
}
.calendar-icon{
  width:min(310px,70%);
  aspect-ratio:1/1;
  border:1px solid rgba(255,255,255,.24);
  border-radius:38px;
  position:relative;
  background:rgba(255,255,255,.05);
  box-shadow:24px 24px 0 rgba(116,184,187,.10);
}
.calendar-icon::before,
.calendar-icon::after{
  content:"";
  position:absolute;
  top:-16px;
  width:20px;
  height:42px;
  border-radius:999px;
  background:#f6f0e4;
}
.calendar-icon::before{left:68px}
.calendar-icon::after{right:68px}
.cal-top{
  position:absolute;
  left:0;right:0;top:70px;
  height:1px;
  background:rgba(255,255,255,.22);
}
.cal-grid{
  position:absolute;
  inset:105px 42px 42px;
  background:
    radial-gradient(circle,#d6e8e0 0 5px,transparent 6px) 0 0/56px 56px;
  opacity:.65;
}

.booking-options{
  padding:90px 0 110px;
}
.booking-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.booking-card{
  padding:40px;
  min-height:430px;
  border-radius:34px;
  background:#fff;
  border:1px solid rgba(18,60,52,.09);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.booking-card-alt{
  background:#dcebe5;
}
.booking-card-number{
  font-size:10px;
  font-weight:850;
  letter-spacing:.16em;
  color:var(--coral);
}
.booking-card h2{
  margin:42px 0 18px;
  font-size:clamp(38px,4vw,64px);
  line-height:.95;
  letter-spacing:-.045em;
  font-weight:500;
}
.booking-card p{
  color:var(--muted);
  max-width:600px;
  line-height:1.7;
  margin:0 0 30px;
}
.booking-meta{
  width:100%;
  margin-top:auto;
  padding:18px 0;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.booking-meta span{color:var(--muted)}
.booking-button{
  margin-top:18px;
  width:100%;
  border:0;
  border-radius:999px;
  padding:14px 18px;
  background:var(--forest);
  color:#fff;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:800;
  opacity:.45;
  cursor:not-allowed;
}
.booking-soon{
  width:100%;
  margin-top:10px;
  text-align:center;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--muted);
}
.booking-note{
  margin-top:26px;
  padding:26px 30px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
}
.booking-note p{
  max-width:760px;
  margin:0;
  color:var(--muted);
  line-height:1.6;
}
.booking-note a{
  flex:none;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.12em;
}

@media(max-width:1050px){
  .booking-hero-inner,
  .booking-grid{
    grid-template-columns:1fr;
  }
  .calendar-art{display:none}
}
@media(max-width:680px){
  .booking-hero{padding-top:150px}
  .booking-hero-inner{padding:32px 24px;border-radius:28px}
  .booking-hero h1{font-size:50px}
  .booking-card{padding:28px;min-height:auto}
  .booking-note{align-items:flex-start;flex-direction:column}
}


/* =======================================================
   V8.6 — BOOKING MOVED OUT OF HEADER + REDESIGNED PAGE
   ======================================================= */

/* Reservation is no longer a navigation item. */
.header .booking-nav{display:none!important;}

/* Booking CTA directly below homepage hero */
.home-booking-cta{
  padding:0 0 54px;
  background:#f6f0e4;
}
.home-booking-cta-inner{
  background:var(--forest);
  color:#fff;
  border-radius:30px;
  padding:28px 34px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:32px;
  align-items:center;
  box-shadow:0 18px 50px rgba(18,60,52,.10);
}
.home-booking-cta-inner span{
  font-size:9px;
  font-weight:850;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#a8c7bc;
}
.home-booking-cta-inner h2{
  margin:7px 0 4px;
  font-size:clamp(26px,3vw,42px);
  font-weight:500;
  letter-spacing:-.04em;
}
.home-booking-cta-inner p{
  margin:0;
  color:#bfd1ca;
  font-size:13px;
}
.home-booking-cta-inner > a{
  display:inline-flex;
  padding:13px 18px;
  background:#fff;
  color:var(--forest);
  border-radius:999px;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
}

/* Booking hero */
.booking-page-v86{
  background:#f6f0e4;
}
.booking-hero-v86{
  padding:132px 0 82px;
  background:
    radial-gradient(circle at 86% 18%, rgba(116,184,187,.16), transparent 24%),
    #f6f0e4;
}
.booking-hero-layout{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:22px;
  align-items:stretch;
}
.booking-hero-copy-v86{
  background:var(--forest);
  color:#fff;
  padding:54px;
  border-radius:38px 10px 38px 10px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.booking-hero-copy-v86 .kicker{
  align-self:flex-start;
  background:rgba(255,255,255,.10)!important;
  color:#d5e7e0!important;
}
.booking-hero-copy-v86 h1{
  margin:18px 0 24px;
  font-size:clamp(58px,6.4vw,105px);
  line-height:.88;
  letter-spacing:-.06em;
  font-weight:500;
}
.booking-hero-copy-v86 p{
  margin:0;
  max-width:620px;
  color:#bfd1ca;
  line-height:1.7;
  font-size:15px;
}
.booking-hero-photo{
  position:relative;
  min-height:510px;
  overflow:hidden;
  border-radius:10px 58px 10px 58px;
  box-shadow:0 28px 70px rgba(18,60,52,.12);
}
.booking-hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:none!important;
  opacity:1!important;
}
.booking-photo-label{
  position:absolute;
  right:18px;
  bottom:18px;
  padding:10px 14px;
  background:rgba(250,247,239,.92);
  border-radius:999px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  color:var(--forest);
}

/* Service rows */
.booking-services-v86{
  padding:34px 0 92px;
}
.booking-service-stack{
  display:grid;
  gap:24px;
}
.booking-service-row{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  min-height:500px;
  border-radius:34px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 18px 55px rgba(18,60,52,.06);
}
.booking-service-row.reverse{
  grid-template-columns:.92fr 1.08fr;
}
.booking-service-row.reverse .booking-service-image{order:2}
.booking-service-row.reverse .booking-service-copy{
  order:1;
  background:#dcebe5;
}
.booking-service-image{
  overflow:hidden;
}
.booking-service-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:none!important;
  opacity:1!important;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
.booking-service-row:hover .booking-service-image img{
  transform:scale(1.012);
}
.booking-service-copy{
  padding:46px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.booking-num{
  font-size:10px;
  font-weight:850;
  letter-spacing:.16em;
  color:var(--coral);
}
.booking-service-copy h2{
  margin:44px 0 18px;
  font-size:clamp(42px,4.5vw,72px);
  line-height:.92;
  letter-spacing:-.05em;
  font-weight:500;
}
.booking-service-copy p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
  font-size:14px;
}
.booking-service-meta{
  margin-top:auto;
  width:100%;
  padding-top:22px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:18px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.10em;
}
.booking-service-meta span{color:var(--muted)}
.booking-service-copy button{
  width:100%;
  margin-top:18px;
  padding:14px 18px;
  border:0;
  border-radius:999px;
  background:var(--forest);
  color:#fff;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
  opacity:.42;
  cursor:not-allowed;
}
.booking-service-copy small{
  width:100%;
  margin-top:10px;
  text-align:center;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:8px;
}

/* How it works */
.booking-how-v86{
  padding:88px 0 110px;
  background:var(--forest);
  color:#fff;
}
.booking-how-head{
  display:grid;
  grid-template-columns:.55fr 1.45fr;
  gap:40px;
  align-items:end;
  margin-bottom:44px;
}
.booking-how-head .home-section-tag{
  justify-self:start;
  background:rgba(255,255,255,.10);
  color:#d5e7e0;
}
.booking-how-head h2{
  margin:0;
  font-size:clamp(46px,5.7vw,88px);
  line-height:.9;
  letter-spacing:-.055em;
  font-weight:500;
}
.booking-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.18);
}
.booking-step{
  min-height:235px;
  padding:28px;
  border-right:1px solid rgba(255,255,255,.18);
}
.booking-step:last-child{border-right:0}
.booking-step > span{
  color:#9ec2b6;
  font-size:10px;
  font-weight:850;
}
.booking-step h3{
  margin:48px 0 12px;
  font-size:23px;
  font-weight:500;
}
.booking-step p{
  margin:0;
  color:#bcd0c8;
  line-height:1.6;
  font-size:13px;
}
.booking-contact-note{
  margin-top:28px;
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
}
.booking-contact-note p{
  margin:0;
  color:#bcd0c8;
  max-width:720px;
}
.booking-contact-note a{
  color:#fff;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
}

@media(max-width:1050px){
  .home-booking-cta-inner,
  .booking-hero-layout,
  .booking-service-row,
  .booking-service-row.reverse,
  .booking-how-head{
    grid-template-columns:1fr;
  }
  .booking-service-row.reverse .booking-service-image,
  .booking-service-row.reverse .booking-service-copy{
    order:initial;
  }
  .booking-hero-photo{min-height:400px}
}
@media(max-width:680px){
  .home-booking-cta-inner{
    padding:24px;
    align-items:flex-start;
  }
  .booking-hero-v86{padding-top:148px}
  .booking-hero-copy-v86{padding:32px 24px}
  .booking-hero-copy-v86 h1{font-size:50px}
  .booking-hero-photo{min-height:290px}
  .booking-service-copy{padding:28px}
  .booking-service-row{min-height:auto}
  .booking-steps{grid-template-columns:1fr}
  .booking-step{
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.18);
    min-height:auto;
  }
  .booking-step:last-child{border-bottom:0}
  .booking-contact-note{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =======================================================
   V8.7 — TWO CLEAR BOOKING CHOICES, SAME VISUAL LANGUAGE
   ======================================================= */

.home-booking-cta-v87{
  padding:0 0 56px!important;
}
.home-booking-cta-v87 .home-booking-cta-inner{
  padding:30px 34px!important;
  grid-template-columns:1fr auto!important;
  gap:34px!important;
  align-items:center!important;
  border-radius:28px!important;
}
.home-booking-copy h2{
  margin:7px 0 5px!important;
}
.home-booking-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.booking-choice{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:13px 18px;
  border-radius:999px;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
  white-space:nowrap;
  transition:.2s ease;
}
.booking-choice.primary-choice{
  background:#fff;
  color:var(--forest);
  border:1px solid #fff;
}
.booking-choice.secondary-choice{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.32);
}
.booking-choice:hover{
  transform:translateY(-1px);
}
.booking-choice.secondary-choice:hover{
  background:rgba(255,255,255,.08);
}

/* The two booking services can be targeted directly from homepage. */
#online,
#maintenance{
  scroll-margin-top:110px;
}

/* Keep button language consistent across project + booking actions */
.home-btn.primary,
.booking-choice.primary-choice,
.booking-service-copy button{
  border-radius:999px!important;
  font-weight:850!important;
  letter-spacing:.11em!important;
  text-transform:uppercase!important;
}

/* Project remains visually primary; booking choices are clearly a secondary funnel. */
.home-booking-cta-v87{
  background:#f6f0e4!important;
}

@media(max-width:900px){
  .home-booking-cta-v87 .home-booking-cta-inner{
    grid-template-columns:1fr!important;
  }
  .home-booking-actions{
    justify-content:flex-start;
  }
}
@media(max-width:680px){
  .home-booking-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .booking-choice{
    width:100%;
  }
}


/* =======================================================
   V8.8 — ONE UNIFIED ACTION SYSTEM IN THE HERO
   ======================================================= */

/* Old homepage booking block is intentionally gone. */
.home-booking-cta,
.home-booking-cta-v87{
  display:none!important;
}

/* Remove obsolete two-button hero action styling from the layout. */
.home-actions{
  display:none!important;
}

/* One compact decision block: project / consultation / maintenance. */
.home-action-selector{
  margin-top:30px;
  max-width:690px;
  border-top:1px solid rgba(18,60,52,.18);
}
.home-action-selector-title{
  padding:13px 0 9px;
  color:var(--forest);
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.15em;
}
.home-action-row{
  min-height:68px;
  display:grid;
  grid-template-columns:1fr auto 24px;
  gap:18px;
  align-items:center;
  padding:11px 12px 11px 0;
  border-top:1px solid rgba(18,60,52,.14);
  color:var(--forest);
  transition:
    background .2s ease,
    padding-left .2s ease,
    border-color .2s ease;
}
.home-action-row:last-child{
  border-bottom:1px solid rgba(18,60,52,.18);
}
.home-action-row:hover{
  padding-left:12px;
  background:rgba(255,255,255,.46);
}
.home-action-row.home-action-project{
  margin-top:3px;
  padding-left:14px;
  padding-right:14px;
  border:0;
  border-radius:17px;
  background:var(--forest);
  color:#fff;
}
.home-action-row.home-action-project:hover{
  background:var(--forest-2);
  padding-left:18px;
}
.home-action-main{
  min-width:0;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:12px;
  align-items:baseline;
}
.home-action-main span{
  font-size:8px;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--forest-2);
  white-space:nowrap;
}
.home-action-project .home-action-main span{
  color:#a9c9be;
}
.home-action-main strong{
  font-size:17px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:-.02em;
}
.home-action-main small{
  grid-column:2;
  margin-top:3px;
  color:var(--muted);
  font-size:9px;
  letter-spacing:.04em;
}
.home-action-project .home-action-main small{
  color:#bfd1ca;
}
.home-action-mode{
  padding:7px 9px;
  border:1px solid rgba(18,60,52,.16);
  border-radius:999px;
  color:var(--forest);
  font-size:8px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
  white-space:nowrap;
}
.home-action-project .home-action-mode{
  border-color:rgba(255,255,255,.22);
  color:#fff;
}
.home-action-row b{
  font-size:15px;
  font-weight:400;
  text-align:right;
}

/* Statistics now sit naturally after the single action system. */
.home-action-selector + .home-trust{
  margin-top:26px!important;
}

/* Gallery is a secondary content action attached to the actual artwork,
   not mixed with commercial actions. */
.home-gallery-link-v88{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:4;
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(18,60,52,.88);
  color:#fff;
  backdrop-filter:blur(8px);
  font-size:8px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
  transition:.2s ease;
}
.home-gallery-link-v88:hover{
  background:var(--forest);
  transform:translateY(-1px);
}

@media(max-width:1100px){
  .home-action-selector{
    max-width:none;
  }
}

@media(max-width:680px){
  .home-action-row{
    grid-template-columns:1fr auto;
    gap:10px;
    padding:13px 4px 13px 0;
  }
  .home-action-row > b{
    display:none;
  }
  .home-action-main{
    grid-template-columns:1fr;
    gap:2px;
  }
  .home-action-main small{
    grid-column:auto;
  }
  .home-action-main span{
    margin-bottom:3px;
  }
  .home-action-row.home-action-project{
    padding:13px 14px;
  }
  .home-action-mode{
    align-self:center;
  }
  .home-gallery-link-v88{
    left:12px;
    bottom:12px;
    padding:9px 11px;
    font-size:7px;
  }
}


/* =======================================================
   V9.1 — GREEN BOOKING: TEXT BANNER + 2 COMPACT IMAGE ROWS
   ======================================================= */

.booking-v91{
  background:#f6f0e4;
}

.booking-v91-head{
  padding:126px 0 28px;
}

.booking-v91-banner{
  padding:44px 48px;
  border-radius:34px;
  background:var(--forest);
  color:#fff;
  position:relative;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(18,60,52,.10);
}

.booking-v91-banner::after{
  content:"";
  position:absolute;
  width:380px;
  height:380px;
  right:-150px;
  top:-180px;
  border-radius:50%;
  background:rgba(116,184,187,.14);
}

.booking-v91-banner .kicker{
  position:relative;
  z-index:1;
  background:rgba(255,255,255,.10)!important;
  color:#d5e7e0!important;
}

.booking-v91-banner h1{
  position:relative;
  z-index:1;
  margin:16px 0 18px;
  font-size:clamp(52px,6vw,92px);
  line-height:.9;
  letter-spacing:-.055em;
  font-weight:500;
}

.booking-v91-banner p{
  position:relative;
  z-index:1;
  max-width:780px;
  margin:0;
  color:#bfd1ca;
  line-height:1.65;
  font-size:14px;
}

.booking-v91-services{
  padding:18px 0 72px;
}

.booking-v91-stack{
  display:grid;
  gap:18px;
}

.booking-v91-row{
  display:grid;
  grid-template-columns:34% 66%;
  min-height:310px;
  overflow:hidden;
  border-radius:30px;
  background:#fff;
  box-shadow:0 14px 42px rgba(18,60,52,.06);
  border:1px solid rgba(18,60,52,.07);
}

.booking-v91-row.reverse{
  grid-template-columns:66% 34%;
}

.booking-v91-row.reverse .booking-v91-photo{
  order:2;
}

.booking-v91-row.reverse .booking-v91-copy{
  order:1;
  background:#dcebe5;
}

.booking-v91-photo{
  overflow:hidden;
}

.booking-v91-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}

.booking-v91-row:hover .booking-v91-photo img{
  transform:scale(1.012);
}

.booking-v91-copy{
  padding:34px 38px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.booking-v91-num{
  font-size:9px;
  font-weight:850;
  letter-spacing:.16em;
  color:var(--coral);
}

.booking-v91-copy h2{
  margin:24px 0 12px;
  font-size:clamp(36px,4vw,60px);
  line-height:.95;
  letter-spacing:-.045em;
  font-weight:500;
}

.booking-v91-copy p{
  margin:0;
  max-width:720px;
  color:var(--muted);
  line-height:1.65;
  font-size:13px;
}

.booking-v91-meta{
  width:100%;
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.10em;
}

.booking-v91-meta span{
  color:var(--muted);
}

.booking-v91-copy button{
  width:100%;
  margin-top:14px;
  padding:12px 17px;
  border:0;
  border-radius:999px;
  background:var(--forest);
  color:#fff;
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
  opacity:.42;
  cursor:not-allowed;
}

.booking-v91-copy small{
  width:100%;
  margin-top:7px;
  text-align:center;
  color:var(--muted);
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.10em;
}

.booking-v91-note{
  margin-top:18px;
  padding-top:20px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
}

.booking-v91-note p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}

.booking-v91-note a{
  flex:none;
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
}

#maintenance,
#online{
  scroll-margin-top:105px;
}

@media(max-width:900px){
  .booking-v91-row,
  .booking-v91-row.reverse{
    grid-template-columns:1fr;
  }

  .booking-v91-row.reverse .booking-v91-photo,
  .booking-v91-row.reverse .booking-v91-copy{
    order:initial;
  }

  .booking-v91-photo{
    min-height:230px;
  }
}

@media(max-width:680px){
  .booking-v91-head{
    padding-top:145px;
  }

  .booking-v91-banner{
    padding:32px 24px;
  }

  .booking-v91-banner h1{
    font-size:48px;
  }

  .booking-v91-copy{
    padding:26px;
  }

  .booking-v91-note{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =======================================================
   V9.2 — SERVICES: LIGHT SAGE FIELD + VERTICAL AQUASCAPE DETAIL
   ======================================================= */
.services-scope-v92{
  background:#eef1e9!important;
  padding-bottom:92px!important;
}
.services-grid-v92{
  grid-template-columns:.72fr 1.28fr!important;
  gap:54px!important;
  align-items:start!important;
}
.services-visual-v92{
  position:sticky;
  top:110px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
}
.services-photo-v92{
  width:100%;
  height:560px;
  overflow:hidden;
  border-radius:30px;
  background:#fff;
  border:1px solid rgba(18,60,52,.08);
  box-shadow:0 18px 46px rgba(18,60,52,.07);
}
.services-photo-v92 img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}
.services-scope-v92 .service{
  background:rgba(255,255,255,.70)!important;
  border-color:rgba(18,60,52,.075)!important;
}
.services-scope-v92 .service:hover{
  background:rgba(255,255,255,.94)!important;
}
@media(max-width:1050px){
  .services-grid-v92{
    grid-template-columns:.82fr 1.18fr!important;
    gap:30px!important;
  }
  .services-photo-v92{height:500px}
}
@media(max-width:800px){
  .services-grid-v92{
    grid-template-columns:1fr!important;
  }
  .services-visual-v92{
    position:static;
  }
  .services-photo-v92{
    height:340px;
  }
}


/* =======================================================
   V9.3 — UNIFIED INNER PAGES + RESPONSIVE SYSTEM
   Desktop / iPad landscape / iPad portrait / phone
   ======================================================= */

:root{
  --inner-bg:#f4f2ea;
  --inner-soft:#eef2ec;
  --inner-card:#ffffff;
  --inner-radius:34px;
}

/* ---------- GLOBAL RESPONSIVE SAFETY ---------- */
html{
  -webkit-text-size-adjust:100%;
}
body{
  overflow-x:hidden;
}
img,svg,video{
  max-width:100%;
}
input,select,textarea,button{
  max-width:100%;
}
a,button{
  -webkit-tap-highlight-color:transparent;
}

/* ---------- ONE VISUAL SYSTEM FOR ALL INNER PAGES ---------- */

/* Same calm, light background around every inner-page header. */
.page-head,
.booking-v91,
.booking-v91-head,
.booking-v91-services{
  background:var(--inner-bg)!important;
}

/* Remove the old yellow / decorative page background. */
.page-head{
  padding:126px 0 28px!important;
}
.page-head::after{
  display:none!important;
}

/* Page banner now matches the Reservation banner. */
.page-head > .wrap,
.booking-v91-banner{
  padding:44px 48px!important;
  border-radius:var(--inner-radius)!important;
  background:var(--forest)!important;
  color:#fff!important;
  box-shadow:0 20px 60px rgba(18,60,52,.10)!important;
  position:relative;
  overflow:hidden;
}

/* One subtle circle only — same graphic language everywhere. */
.page-head > .wrap::before,
.booking-v91-banner::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  width:380px!important;
  height:380px!important;
  right:-150px!important;
  top:-180px!important;
  border-radius:50%!important;
  background:rgba(116,184,187,.14)!important;
  pointer-events:none!important;
}
.page-head > .wrap::after{
  display:none!important;
}

/* Kicker consistency */
.page-head .kicker,
.booking-v91-banner .kicker{
  position:relative!important;
  z-index:1!important;
  background:rgba(255,255,255,.10)!important;
  color:#d5e7e0!important;
  border:1px solid rgba(255,255,255,.10)!important;
}

/* Smaller titles across Services / Gallery / Partners / Contact / Booking. */
.page-head h1,
.booking-v91-banner h1{
  position:relative!important;
  z-index:1!important;
  margin:16px 0 18px!important;
  max-width:1050px!important;
  color:#fff!important;
  font-size:clamp(50px,4.6vw,82px)!important;
  line-height:.92!important;
  letter-spacing:-.052em!important;
  font-weight:500!important;
  overflow-wrap:break-word;
}

/* Same intro text size and rhythm. */
.page-head p,
.booking-v91-banner p{
  position:relative!important;
  z-index:1!important;
  max-width:780px!important;
  margin:0!important;
  color:#bfd1ca!important;
  font-size:14px!important;
  line-height:1.65!important;
}

/* All content after banners starts at a similar distance. */
.page-head + .section{
  padding-top:32px!important;
}
.page-head + .contact-layout{
  padding-top:30px!important;
}

/* Light backgrounds replacing the old yellow field. */
main > .section.soft,
.services-scope-v92,
.contact-layout{
  background:var(--inner-bg)!important;
}

/* Services keeps a subtle pale-sage difference, not yellow. */
.services-scope-v92{
  background:var(--inner-soft)!important;
  padding-top:32px!important;
}

/* Partner cards — remove remaining yellow visual language. */
.partner-card{
  background:rgba(255,255,255,.78)!important;
}
.partner-card:nth-child(2){
  background:#e7f0ec!important;
}
.partner-card:nth-child(3){
  background:#f1eee7!important;
}

/* Shared card softness */
.project,
.partner-card,
.form-card,
.info-card,
.booking-v91-row,
.services-photo-v92,
.services-scope-v92 .service{
  box-shadow:0 14px 42px rgba(18,60,52,.055);
}

/* ---------- DESKTOP BALANCE ---------- */

.services-grid-v92{
  grid-template-columns:.66fr 1.34fr!important;
  gap:42px!important;
}
.services-photo-v92{
  height:520px!important;
}

.contact-layout{
  grid-template-columns:.64fr 1.36fr!important;
  gap:32px!important;
  padding-bottom:92px!important;
}

.gallery-stack .project{
  margin-bottom:38px!important;
}

/* Booking remains compact and visually related to all other pages. */
.booking-v91-head{
  padding:126px 0 28px!important;
}
.booking-v91-services{
  padding:18px 0 72px!important;
}
.booking-v91-row{
  min-height:295px!important;
}
.booking-v91-copy{
  padding:30px 34px!important;
}
.booking-v91-copy h2{
  font-size:clamp(34px,3.4vw,54px)!important;
}

/* ---------- TABLET / iPAD LANDSCAPE ---------- */
@media (max-width:1180px){

  .wrap{
    width:min(var(--max),calc(100% - 44px))!important;
  }

  .page-head,
  .booking-v91-head{
    padding-top:112px!important;
  }

  .page-head > .wrap,
  .booking-v91-banner{
    padding:38px 40px!important;
    border-radius:30px!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    font-size:clamp(48px,6vw,70px)!important;
  }

  /* Services: still two columns on iPad landscape, but less wasted width. */
  .services-grid-v92{
    grid-template-columns:.58fr 1.42fr!important;
    gap:26px!important;
  }
  .services-photo-v92{
    height:470px!important;
    border-radius:26px!important;
  }
  .service{
    padding:18px 20px!important;
  }
  .service h3{
    font-size:18px!important;
  }

  /* Contact stays two-column in landscape, with better proportions. */
  .contact-layout{
    grid-template-columns:.78fr 1.22fr!important;
    gap:24px!important;
  }
  .form-card{
    padding:32px!important;
  }

  /* Booking */
  .booking-v91-row{
    grid-template-columns:36% 64%!important;
    min-height:285px!important;
  }
  .booking-v91-row.reverse{
    grid-template-columns:64% 36%!important;
  }
  .booking-v91-copy{
    padding:28px 30px!important;
  }
}

/* ---------- TABLET / iPAD PORTRAIT ---------- */
@media (max-width:900px){

  .wrap{
    width:calc(100% - 36px)!important;
  }

  .page-head,
  .booking-v91-head{
    padding-top:106px!important;
    padding-bottom:24px!important;
  }

  .page-head > .wrap,
  .booking-v91-banner{
    padding:36px!important;
    border-radius:28px!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    font-size:clamp(46px,8vw,64px)!important;
  }

  .page-head p,
  .booking-v91-banner p{
    font-size:14px!important;
  }

  /* Services: stacked on portrait tablet. Keep photo landscape, not giant. */
  .services-grid-v92{
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  .services-visual-v92{
    position:static!important;
  }
  .services-photo-v92{
    height:320px!important;
  }

  /* Contact form stacks cleanly on portrait iPad. */
  .contact-layout{
    grid-template-columns:1fr!important;
    gap:24px!important;
    padding-bottom:72px!important;
  }
  .contact-aside{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
  }

  /* Partners / gallery already stack — reduce excess spacing. */
  .partner-card{
    gap:24px!important;
    padding:28px!important;
  }
  .partner-card h2{
    font-size:clamp(42px,8vw,64px)!important;
  }

  /* Booking rows stack, image stays compact. */
  .booking-v91-row,
  .booking-v91-row.reverse{
    grid-template-columns:1fr!important;
    min-height:0!important;
  }
  .booking-v91-row.reverse .booking-v91-photo,
  .booking-v91-row.reverse .booking-v91-copy{
    order:initial!important;
  }
  .booking-v91-photo{
    height:260px!important;
    min-height:0!important;
  }
}

/* ---------- PHONE ---------- */
@media (max-width:680px){

  .wrap{
    width:calc(100% - 24px)!important;
  }

  /* Two-row mobile header: logo/menu first, flags below.
     Keeps all five languages accessible without squeezing. */
  .header{
    height:108px!important;
    min-height:108px!important;
  }
  .nav{
    min-height:108px!important;
    height:108px!important;
    display:grid!important;
    grid-template-columns:auto 1fr 44px!important;
    grid-template-rows:64px 36px!important;
    gap:0 10px!important;
  }
  .v80-logo{
    grid-column:1!important;
    grid-row:1!important;
    width:96px!important;
    height:56px!important;
    align-self:center!important;
  }
  .v80-logo img{
    max-height:50px!important;
  }
  .menu{
    grid-column:3!important;
    grid-row:1!important;
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    font-size:24px!important;
    justify-self:end!important;
  }
  .lang-switch{
    grid-column:1 / -1!important;
    grid-row:2!important;
    width:auto!important;
    justify-self:center!important;
    align-self:start!important;
    margin:0!important;
    gap:8px!important;
  }
  .flag-link{
    width:34px!important;
    height:28px!important;
  }
  .navlinks{
    top:108px!important;
    left:12px!important;
    right:12px!important;
    padding:18px!important;
    border-radius:20px!important;
    gap:0!important;
  }
  .navlinks a{
    width:100%!important;
    min-height:44px!important;
    display:flex!important;
    align-items:center!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }
  .navlinks a:last-child{
    border-bottom:0!important;
  }

  /* Unified inner banner below taller mobile header. */
  .page-head,
  .booking-v91-head{
    padding:124px 0 18px!important;
  }
  .page-head > .wrap,
  .booking-v91-banner{
    padding:28px 22px 30px!important;
    border-radius:24px!important;
  }
  .page-head > .wrap::before,
  .booking-v91-banner::after{
    width:240px!important;
    height:240px!important;
    right:-120px!important;
    top:-120px!important;
  }
  .page-head h1,
  .booking-v91-banner h1{
    margin:13px 0 14px!important;
    font-size:clamp(40px,12vw,52px)!important;
    line-height:.94!important;
  }
  .page-head p,
  .booking-v91-banner p{
    font-size:13px!important;
    line-height:1.58!important;
  }

  /* Content spacing */
  .page-head + .section,
  .services-scope-v92{
    padding-top:20px!important;
  }

  /* Services */
  .services-grid-v92{
    gap:18px!important;
  }
  .services-photo-v92{
    height:230px!important;
    border-radius:22px!important;
  }
  .services-visual-v92{
    gap:10px!important;
  }
  .service-list{
    gap:9px!important;
  }
  .service{
    grid-template-columns:28px 1fr!important;
    gap:10px!important;
    padding:15px 16px!important;
    border-radius:18px!important;
  }
  .service h3{
    font-size:16px!important;
    line-height:1.25!important;
  }
  .service i{
    grid-column:2!important;
    justify-self:start!important;
    font-size:10px!important;
    margin-top:2px!important;
  }

  /* Booking */
  .booking-v91-services{
    padding:10px 0 52px!important;
  }
  .booking-v91-stack{
    gap:14px!important;
  }
  .booking-v91-row{
    border-radius:22px!important;
  }
  .booking-v91-photo{
    height:190px!important;
  }
  .booking-v91-copy{
    padding:24px 20px!important;
  }
  .booking-v91-copy h2{
    margin:18px 0 10px!important;
    font-size:36px!important;
  }
  .booking-v91-copy p{
    font-size:12.5px!important;
  }
  .booking-v91-copy button{
    min-height:44px!important;
  }
  .booking-v91-note{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:12px!important;
  }

  /* Contact */
  .contact-layout{
    padding-top:18px!important;
    padding-bottom:54px!important;
  }
  .info-card,
  .form-card{
    border-radius:22px!important;
  }
  .info-card{
    padding:22px!important;
  }
  .form-card{
    padding:22px 16px!important;
  }
  .form-head{
    margin-bottom:22px!important;
  }
  .form-head h2{
    font-size:36px!important;
  }
  .form-grid{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .field{
    border-radius:15px!important;
    padding:13px 14px!important;
  }
  .field input,
  .field select,
  .field textarea{
    font-size:16px!important; /* avoids iOS input zoom */
  }
  .submit{
    min-height:46px!important;
  }

  /* Partners */
  .partner-card{
    padding:22px!important;
    border-radius:22px!important;
    gap:18px!important;
  }
  .partner-card h2{
    font-size:40px!important;
  }

  /* Gallery */
  .gallery-stack .project{
    margin-bottom:22px!important;
  }
  .project{
    padding:12px!important;
    border-radius:22px!important;
  }
  .project-title{
    font-size:34px!important;
  }

  /* Footer */
  .footer{
    padding:48px 0 26px!important;
  }
  .footer-main{
    gap:28px!important;
  }
  .footer-contact-v74{
    gap:12px!important;
  }
}

/* ---------- SMALL PHONES ---------- */
@media (max-width:420px){
  .page-head h1,
  .booking-v91-banner h1{
    font-size:40px!important;
  }

  .v80-logo{
    width:86px!important;
  }

  .flag-link{
    width:31px!important;
  }

  .booking-v91-photo{
    height:170px!important;
  }

  .home-action-mode{
    font-size:7px!important;
    padding:6px 7px!important;
  }
}

/* Touch devices: no hover zoom / movement. */
@media (hover:none){
  .home-hero-visual:hover img,
  .booking-v91-row:hover .booking-v91-photo img,
  .services-scope-v92 .service:hover{
    transform:none!important;
  }
}


/* =======================================================
   V9.4 — EQUAL INNER BANNERS + FULL VERTICAL SERVICES PHOTO
   Gallery / Services / Partners / Booking / Contact
   ======================================================= */

:root{
  --inner-banner-height:300px;
}

/* -------- EXACTLY THE SAME FIRST BANNER ON EVERY INNER PAGE -------- */

.page-head,
.booking-v91-head{
  padding:126px 0 28px!important;
  background:var(--inner-bg)!important;
}

/* All five inner-page banners share the same physical height. */
.page-head > .wrap,
.booking-v91-banner{
  box-sizing:border-box!important;
  height:var(--inner-banner-height)!important;
  min-height:var(--inner-banner-height)!important;
  padding:34px 48px!important;
  border-radius:34px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  background:var(--forest)!important;
  overflow:hidden!important;
}

/* Shared decorative circle. */
.page-head > .wrap::before,
.booking-v91-banner::after{
  width:320px!important;
  height:320px!important;
  right:-115px!important;
  top:-145px!important;
}

/* One typography scale for ALL inner-page banners. */
.page-head .kicker,
.booking-v91-banner .kicker{
  flex:0 0 auto!important;
}

.page-head h1,
.booking-v91-banner h1{
  margin:13px 0 14px!important;
  max-width:980px!important;
  font-size:clamp(48px,3.8vw,66px)!important;
  line-height:.92!important;
  letter-spacing:-.05em!important;
  flex:0 0 auto!important;
}

.page-head p,
.booking-v91-banner p{
  max-width:780px!important;
  margin:0!important;
  font-size:13px!important;
  line-height:1.55!important;
  flex:0 0 auto!important;
}

/* Remove inline top padding differences below headers. */
.page-head + .section,
.page-head + section.section,
.page-head + .contact-layout{
  padding-top:30px!important;
}

/* -------- SERVICES: USE THE FULL VERTICAL USER PHOTO -------- */

.services-scope-v92{
  padding-top:30px!important;
  padding-bottom:76px!important;
}

.services-grid-v92{
  grid-template-columns:320px minmax(0,1fr)!important;
  gap:48px!important;
  align-items:start!important;
}

.services-visual-v92{
  width:320px!important;
  max-width:100%!important;
  position:sticky!important;
  top:112px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:14px!important;
}

.services-photo-v94{
  width:320px!important;
  max-width:100%!important;
  height:auto!important;
  aspect-ratio:604 / 1074!important;
  border-radius:28px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 16px 46px rgba(18,60,52,.08)!important;
}

.services-photo-v94 img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}

.services-grid-v92 .service-list{
  min-width:0!important;
  gap:10px!important;
}

.services-grid-v92 .service{
  min-height:66px!important;
  padding:16px 20px!important;
}

/* -------- iPAD LANDSCAPE -------- */
@media(max-width:1180px){
  :root{
    --inner-banner-height:280px;
  }

  .page-head,
  .booking-v91-head{
    padding-top:112px!important;
  }

  .page-head > .wrap,
  .booking-v91-banner{
    padding:30px 38px!important;
    border-radius:30px!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    font-size:clamp(46px,5vw,60px)!important;
  }

  .services-grid-v92{
    grid-template-columns:280px minmax(0,1fr)!important;
    gap:28px!important;
  }

  .services-visual-v92,
  .services-photo-v94{
    width:280px!important;
  }

  .services-visual-v92{
    top:104px!important;
  }
}

/* -------- iPAD PORTRAIT -------- */
@media(max-width:900px){
  :root{
    --inner-banner-height:260px;
  }

  .page-head,
  .booking-v91-head{
    padding-top:106px!important;
    padding-bottom:22px!important;
  }

  .page-head > .wrap,
  .booking-v91-banner{
    height:var(--inner-banner-height)!important;
    min-height:var(--inner-banner-height)!important;
    padding:28px 34px!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    font-size:clamp(43px,6.8vw,56px)!important;
  }

  .page-head p,
  .booking-v91-banner p{
    font-size:13px!important;
  }

  .services-grid-v92{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }

  .services-visual-v92{
    position:static!important;
    width:100%!important;
  }

  /* On portrait tablet show the whole vertical image but keep it compact. */
  .services-photo-v94{
    width:min(360px,52vw)!important;
    align-self:center!important;
  }
}

/* -------- PHONE -------- */
@media(max-width:680px){
  :root{
    --inner-banner-height:auto;
  }

  .page-head,
  .booking-v91-head{
    padding-top:124px!important;
    padding-bottom:18px!important;
  }

  .page-head > .wrap,
  .booking-v91-banner{
    height:auto!important;
    min-height:230px!important;
    padding:27px 22px 29px!important;
    border-radius:24px!important;
    justify-content:center!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    margin:12px 0 13px!important;
    font-size:clamp(38px,11vw,47px)!important;
    line-height:.94!important;
  }

  .page-head p,
  .booking-v91-banner p{
    font-size:12.5px!important;
    line-height:1.55!important;
  }

  .services-scope-v92{
    padding-top:18px!important;
  }

  .services-photo-v94{
    width:min(300px,80vw)!important;
    border-radius:22px!important;
  }
}

/* Small phones must never crop the banner content. */
@media(max-width:420px){
  .page-head > .wrap,
  .booking-v91-banner{
    min-height:220px!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    font-size:38px!important;
  }
}


/* =======================================================
   V9.5 — SERVICES IMAGE ALIGNED WITH FIRST SERVICE ROW
   ======================================================= */

.services-visual-v92{
  gap:0!important;
}

.services-photo-v94{
  margin-top:0!important;
}

.services-grid-v92{
  align-items:start!important;
}

.services-grid-v92 .service-list{
  margin-top:0!important;
}


/* =======================================================
   V9.6 — SERVICES PHOTO + 7 ROWS ALIGN TOP AND BOTTOM
   ======================================================= */

/* Desktop: photo is 320px wide at its native 604:1074 ratio.
   The seven service rows are forced to exactly the same total height. */
@media (min-width:1181px){
  .services-photo-v94{
    width:320px!important;
    height:auto!important;
    aspect-ratio:604 / 1074!important;
  }

  .services-grid-v92 .service-list{
    height:calc(320px * 1074 / 604)!important;
    display:grid!important;
    grid-template-rows:repeat(7,1fr)!important;
    gap:10px!important;
    align-self:start!important;
  }

  .services-grid-v92 .service{
    min-height:0!important;
    height:100%!important;
    box-sizing:border-box!important;
  }
}

/* iPad landscape: same principle at the narrower 280px photo width. */
@media (min-width:901px) and (max-width:1180px){
  .services-photo-v94{
    width:280px!important;
    height:auto!important;
    aspect-ratio:604 / 1074!important;
  }

  .services-grid-v92 .service-list{
    height:calc(280px * 1074 / 604)!important;
    display:grid!important;
    grid-template-rows:repeat(7,1fr)!important;
    gap:8px!important;
    align-self:start!important;
  }

  .services-grid-v92 .service{
    min-height:0!important;
    height:100%!important;
    box-sizing:border-box!important;
    padding-top:12px!important;
    padding-bottom:12px!important;
  }
}

/* Portrait tablet and phone remain stacked; no forced matching needed there. */
@media (max-width:900px){
  .services-grid-v92 .service-list{
    height:auto!important;
    display:grid!important;
    grid-template-rows:none!important;
  }

  .services-grid-v92 .service{
    height:auto!important;
  }
}


/* =======================================================
   V9.7 — THREE SERVICE PRINCIPLES BELOW THE SERVICE LIST
   ======================================================= */

.services-points-v97{
  margin-top:34px;
  padding-top:26px;
  border-top:1px solid rgba(18,60,52,.14);
  display:grid;
  grid-template-columns:repeat(3,1fr);
}

.services-point{
  min-height:150px;
  padding:6px 28px 4px;
  border-right:1px solid rgba(18,60,52,.14);
}

.services-point:first-child{
  padding-left:0;
}

.services-point:last-child{
  border-right:0;
  padding-right:0;
}

.services-point > span{
  display:block;
  margin-bottom:28px;
  font-size:9px;
  font-weight:850;
  letter-spacing:.16em;
  color:var(--coral);
}

.services-point h3{
  margin:0 0 10px;
  font-size:22px;
  line-height:1.15;
  letter-spacing:-.025em;
  font-weight:500;
  color:var(--forest);
}

.services-point p{
  margin:0;
  max-width:390px;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.6;
}

/* iPad portrait */
@media(max-width:900px){
  .services-points-v97{
    margin-top:28px;
    grid-template-columns:repeat(3,1fr);
  }

  .services-point{
    padding:4px 18px;
  }

  .services-point h3{
    font-size:19px;
  }

  .services-point p{
    font-size:11.5px;
  }
}

/* Phone */
@media(max-width:680px){
  .services-points-v97{
    margin-top:22px;
    padding-top:0;
    grid-template-columns:1fr;
    border-top:0;
  }

  .services-point,
  .services-point:first-child,
  .services-point:last-child{
    min-height:0;
    padding:20px 0;
    border-right:0;
    border-top:1px solid rgba(18,60,52,.14);
  }

  .services-point:last-child{
    border-bottom:1px solid rgba(18,60,52,.14);
  }

  .services-point > span{
    margin-bottom:12px;
  }

  .services-point h3{
    font-size:21px;
  }

  .services-point p{
    font-size:12.5px;
  }
}


/* =======================================================
   V9.8 — INTERACTIVE SERVICE ACTIONS
   Project / Maintenance / Online consultation
   ======================================================= */

.services-points-v97{
  display:none!important;
}

.services-actions-v98{
  margin-top:34px;
  padding-top:28px;
  border-top:1px solid rgba(18,60,52,.14);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.services-action-card{
  min-height:190px;
  padding:24px 24px 20px;
  border-radius:24px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(18,60,52,.08);
  display:flex;
  flex-direction:column;
  color:var(--forest);
  box-shadow:0 12px 36px rgba(18,60,52,.04);
  transition:
    transform .2s ease,
    background .2s ease,
    box-shadow .2s ease;
}

.services-action-card:hover{
  transform:translateY(-3px);
  background:#fff;
  box-shadow:0 18px 42px rgba(18,60,52,.08);
}

.services-action-project{
  background:var(--forest);
  color:#fff;
}

.services-action-project:hover{
  background:var(--forest-2);
}

.services-action-tag{
  font-size:8px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--forest-2);
}

.services-action-project .services-action-tag{
  color:#a9c9be;
}

.services-action-card h3{
  margin:24px 0 7px;
  font-size:27px;
  line-height:1.02;
  letter-spacing:-.035em;
  font-weight:600;
}

.services-action-card p{
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}

.services-action-project p{
  color:#bfd1ca;
}

.services-action-bottom{
  margin-top:auto;
  padding-top:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.services-action-bottom span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(18,60,52,.16);
  font-size:8px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.11em;
}

.services-action-project .services-action-bottom span{
  border-color:rgba(255,255,255,.24);
  color:#fff;
}

.services-action-bottom b{
  font-size:16px;
  font-weight:400;
}

/* iPad */
@media(max-width:900px){
  .services-actions-v98{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
  }

  .services-action-card{
    min-height:175px;
    padding:20px 18px 18px;
  }

  .services-action-card h3{
    font-size:22px;
  }
}

/* Phone */
@media(max-width:680px){
  .services-actions-v98{
    margin-top:24px;
    padding-top:20px;
    grid-template-columns:1fr;
    gap:10px;
  }

  .services-action-card{
    min-height:0;
    padding:20px;
  }

  .services-action-card h3{
    margin-top:16px;
    font-size:24px;
  }

  .services-action-bottom{
    padding-top:16px;
  }
}

/* Touch */
@media(hover:none){
  .services-action-card:hover{
    transform:none;
  }
}


/* =======================================================
   V9.9 — FORM: ONLY NAME + E-MAIL REQUIRED
   ======================================================= */

.required-mark{
  color:var(--coral);
  font-weight:900;
  margin-left:3px;
}

.field input:required,
.field input[type="email"]:required{
  box-shadow:none;
}


/* =======================================================
   V10.0 — UNIFIED INNER PHOTO BANNERS
   Real user aquascape + smooth green transition
   Tvorba / Služby / Partneři / Rezervace / Kontakt
   ======================================================= */

/* All inner-page header areas use the same neutral surrounding background. */
.page-head,
.booking-v91-head{
  background:var(--inner-bg,#f4f2ea)!important;
}

/* Shared banner card */
.page-head > .wrap,
.booking-v91-banner{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  height:300px!important;
  min-height:300px!important;
  padding:36px 48px!important;
  border-radius:34px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  box-shadow:0 20px 60px rgba(18,60,52,.10)!important;
  background:
    linear-gradient(
      90deg,
      rgba(18,60,52,1) 0%,
      rgba(18,60,52,.99) 25%,
      rgba(18,60,52,.92) 36%,
      rgba(18,60,52,.78) 45%,
      rgba(18,60,52,.56) 54%,
      rgba(18,60,52,.30) 63%,
      rgba(18,60,52,.10) 72%,
      rgba(18,60,52,0) 82%
    ),
    url("assets/inner-banner-photo.webp") 70% center / cover no-repeat!important;
}

/* Subfolder language versions */
html[lang="en"] .page-head > .wrap,
html[lang="en"] .booking-v91-banner,
html[lang="de"] .page-head > .wrap,
html[lang="de"] .booking-v91-banner,
html[lang="pl"] .page-head > .wrap,
html[lang="pl"] .booking-v91-banner,
html[lang="it"] .page-head > .wrap,
html[lang="it"] .booking-v91-banner{
  background:
    linear-gradient(
      90deg,
      rgba(18,60,52,1) 0%,
      rgba(18,60,52,.99) 25%,
      rgba(18,60,52,.92) 36%,
      rgba(18,60,52,.78) 45%,
      rgba(18,60,52,.56) 54%,
      rgba(18,60,52,.30) 63%,
      rgba(18,60,52,.10) 72%,
      rgba(18,60,52,0) 82%
    ),
    url("assets/inner-banner-photo.webp") 70% center / cover no-repeat!important;
}

/* Remove previous decorative circles so the photograph is the graphic element. */
.page-head > .wrap::before,
.page-head > .wrap::after,
.booking-v91-banner::before,
.booking-v91-banner::after{
  display:none!important;
  content:none!important;
}

/* Shared text styling */
.page-head .kicker,
.booking-v91-banner .kicker{
  position:relative!important;
  z-index:2!important;
  background:rgba(255,255,255,.10)!important;
  color:#e2eee9!important;
  border:1px solid rgba(255,255,255,.10)!important;
}

.page-head h1,
.booking-v91-banner h1{
  position:relative!important;
  z-index:2!important;
  max-width:660px!important;
  margin:14px 0 14px!important;
  color:#fff!important;
  font-size:clamp(48px,3.8vw,66px)!important;
  line-height:.92!important;
  letter-spacing:-.05em!important;
  font-weight:500!important;
}

.page-head p,
.booking-v91-banner p{
  position:relative!important;
  z-index:2!important;
  max-width:620px!important;
  margin:0!important;
  color:#d8e6e0!important;
  font-size:13px!important;
  line-height:1.58!important;
}

/* iPad landscape */
@media(max-width:1180px){
  .page-head > .wrap,
  .booking-v91-banner{
    height:280px!important;
    min-height:280px!important;
    padding:32px 38px!important;
    background-position:72% center!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    max-width:590px!important;
    font-size:clamp(45px,5vw,58px)!important;
  }

  .page-head p,
  .booking-v91-banner p{
    max-width:540px!important;
  }
}

/* iPad portrait */
@media(max-width:900px){
  .page-head > .wrap,
  .booking-v91-banner{
    height:260px!important;
    min-height:260px!important;
    padding:30px 34px!important;
  }

  html[lang="cs"] .page-head > .wrap,
  html[lang="cs"] .booking-v91-banner{
    background:
      linear-gradient(
        90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,.99) 38%,
        rgba(18,60,52,.86) 52%,
        rgba(18,60,52,.56) 66%,
        rgba(18,60,52,.18) 82%
      ),
      url("assets/inner-banner-photo.webp") 74% center / cover no-repeat!important;
  }

  html:not([lang="cs"]) .page-head > .wrap,
  html:not([lang="cs"]) .booking-v91-banner{
    background:
      linear-gradient(
        90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,.99) 38%,
        rgba(18,60,52,.86) 52%,
        rgba(18,60,52,.56) 66%,
        rgba(18,60,52,.18) 82%
      ),
      url("assets/inner-banner-photo.webp") 74% center / cover no-repeat!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    max-width:510px!important;
    font-size:clamp(42px,6.8vw,54px)!important;
  }

  .page-head p,
  .booking-v91-banner p{
    max-width:490px!important;
  }
}

/* Phone */
@media(max-width:680px){
  .page-head > .wrap,
  .booking-v91-banner{
    height:auto!important;
    min-height:230px!important;
    padding:27px 22px 29px!important;
    border-radius:24px!important;
  }

  html[lang="cs"] .page-head > .wrap,
  html[lang="cs"] .booking-v91-banner{
    background:
      linear-gradient(
        90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,.99) 56%,
        rgba(18,60,52,.82) 74%,
        rgba(18,60,52,.48) 100%
      ),
      url("assets/inner-banner-photo.webp") 78% center / cover no-repeat!important;
  }

  html:not([lang="cs"]) .page-head > .wrap,
  html:not([lang="cs"]) .booking-v91-banner{
    background:
      linear-gradient(
        90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,.99) 56%,
        rgba(18,60,52,.82) 74%,
        rgba(18,60,52,.48) 100%
      ),
      url("assets/inner-banner-photo.webp") 78% center / cover no-repeat!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    max-width:92%!important;
    margin:12px 0 13px!important;
    font-size:clamp(38px,11vw,47px)!important;
  }

  .page-head p,
  .booking-v91-banner p{
    max-width:92%!important;
    font-size:12.5px!important;
    line-height:1.55!important;
  }
}


/* =======================================================
   V10.1 — MATCH THE APPROVED BANNER PREVIEW
   clean green left / real photo right / soft central blend
   ======================================================= */

/* Desktop */
.page-head > .wrap,
.booking-v91-banner{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:var(--forest)!important;
}

/* Real photograph occupies only the right side, so it is not zoomed across
   the whole 3:1-style banner. */
.page-head > .wrap::before,
.booking-v91-banner::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:auto!important;
  width:66%!important;
  height:auto!important;
  border-radius:0!important;
  background:
    url("assets/inner-banner-photo.webp") center center / cover no-repeat!important;
  opacity:1!important;
  pointer-events:none!important;
}

/* Language subfolders */
html[lang="en"] .page-head > .wrap::before,
html[lang="en"] .booking-v91-banner::before,
html[lang="de"] .page-head > .wrap::before,
html[lang="de"] .booking-v91-banner::before,
html[lang="pl"] .page-head > .wrap::before,
html[lang="pl"] .booking-v91-banner::before,
html[lang="it"] .page-head > .wrap::before,
html[lang="it"] .booking-v91-banner::before{
  background:
    url("assets/inner-banner-photo.webp") center center / cover no-repeat!important;
}

/* Soft blend only in the meeting zone — not over the whole photograph. */
.page-head > .wrap::after,
.booking-v91-banner::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:1!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  border-radius:inherit!important;
  background:
    linear-gradient(
      90deg,
      rgba(18,60,52,1) 0%,
      rgba(18,60,52,1) 31%,
      rgba(18,60,52,.98) 35%,
      rgba(18,60,52,.90) 39%,
      rgba(18,60,52,.74) 43%,
      rgba(18,60,52,.50) 47%,
      rgba(18,60,52,.28) 51%,
      rgba(18,60,52,.12) 55%,
      rgba(18,60,52,.03) 59%,
      rgba(18,60,52,0) 63%
    )!important;
  pointer-events:none!important;
}

/* Text always above photograph/gradient */
.page-head .kicker,
.page-head h1,
.page-head p,
.booking-v91-banner .kicker,
.booking-v91-banner h1,
.booking-v91-banner p{
  position:relative!important;
  z-index:3!important;
}

/* Keep text on the calm green area like the approved mock-up */
.page-head h1,
.booking-v91-banner h1{
  max-width:610px!important;
}
.page-head p,
.booking-v91-banner p{
  max-width:570px!important;
}

/* iPad landscape */
@media(max-width:1180px){
  .page-head > .wrap::before,
  .booking-v91-banner::before{
    width:64%!important;
    background-position:58% center!important;
  }

  html[lang="en"] .page-head > .wrap::before,
  html[lang="en"] .booking-v91-banner::before,
  html[lang="de"] .page-head > .wrap::before,
  html[lang="de"] .booking-v91-banner::before,
  html[lang="pl"] .page-head > .wrap::before,
  html[lang="pl"] .booking-v91-banner::before,
  html[lang="it"] .page-head > .wrap::before,
  html[lang="it"] .booking-v91-banner::before{
    background-position:58% center!important;
  }

  .page-head > .wrap::after,
  .booking-v91-banner::after{
    background:
      linear-gradient(
        90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,1) 34%,
        rgba(18,60,52,.93) 40%,
        rgba(18,60,52,.68) 47%,
        rgba(18,60,52,.36) 54%,
        rgba(18,60,52,.10) 61%,
        rgba(18,60,52,0) 68%
      )!important;
  }
}

/* iPad portrait */
@media(max-width:900px){
  .page-head > .wrap::before,
  .booking-v91-banner::before{
    width:58%!important;
    background-position:60% center!important;
  }

  .page-head > .wrap::after,
  .booking-v91-banner::after{
    background:
      linear-gradient(
        90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,1) 43%,
        rgba(18,60,52,.94) 49%,
        rgba(18,60,52,.70) 57%,
        rgba(18,60,52,.36) 65%,
        rgba(18,60,52,.10) 73%,
        rgba(18,60,52,0) 81%
      )!important;
  }
}

/* Phone: preserve the same idea, but make photo atmospheric rather than
   competing with text. */
@media(max-width:680px){
  .page-head > .wrap::before,
  .booking-v91-banner::before{
    width:52%!important;
    opacity:.82!important;
    background-position:62% center!important;
  }

  .page-head > .wrap::after,
  .booking-v91-banner::after{
    background:
      linear-gradient(
        90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,1) 58%,
        rgba(18,60,52,.94) 68%,
        rgba(18,60,52,.72) 78%,
        rgba(18,60,52,.42) 90%,
        rgba(18,60,52,.22) 100%
      )!important;
  }
}

/* Mobile refinement: preserve the existing brand and photo treatments. */
:root{--anchor-offset:112px}
[id]{scroll-margin-top:var(--anchor-offset)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #80b7a3;outline-offset:4px}
@media(max-width:680px){
  :root{--anchor-offset:120px}
  .header{height:104px!important;min-height:104px!important;transition:height .18s ease,min-height .18s ease}
  .header .nav{height:104px!important;min-height:104px!important;grid-template-columns:minmax(0,1fr) 44px!important;grid-template-rows:60px 44px!important;gap:0 8px!important}
  .header .v80-logo{width:96px!important;height:54px!important;grid-column:1!important;grid-row:1!important}
  .header .v80-logo img{max-height:50px!important}
  .header .menu{grid-column:2!important;grid-row:1!important}
  .header .lang-switch{grid-row:2!important;grid-column:1/-1!important;align-self:center!important;gap:4px!important}
  .header .flag-link{width:44px!important;height:40px!important}
  .header .navlinks{top:100%!important;max-height:calc(100dvh - 116px);overflow-y:auto;overscroll-behavior:contain}
  .header.is-compact:not(.menu-open){height:64px!important;min-height:64px!important}
  .header.is-compact:not(.menu-open) .nav{height:64px!important;min-height:64px!important;grid-template-rows:64px!important}
  .header.is-compact:not(.menu-open) .v80-logo{width:82px!important;height:48px!important}
  .header.is-compact:not(.menu-open) .lang-switch{display:none!important}
  .home-services-editorial{padding:36px 0 30px!important}
  .home-services-editorial > .wrap{padding:28px 18px}
  .home-services-editorial .home-service-card,
  .home-services-editorial .home-service-card:nth-child(n){min-height:0!important;padding:20px!important}
  .home-services-editorial .home-service-card h3{margin:12px 0 10px!important;font-size:23px;line-height:1.15}
  .home-services-editorial .home-service-card p{font-size:14px;line-height:1.55}
  .home-services-editorial .home-section-cta{margin-top:18px}
  .home-proof-v7{padding:52px 0}
  .home-proof-copy h2{font-size:clamp(36px,9.2vw,40px);line-height:1.05;letter-spacing:-.04em}
  .home-proof-grid{gap:34px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.header{transition:none!important}}

/* Mobile opening: show the actual aquarium before the long introduction. */
@media(max-width:680px){
  .home-hero-v7.home-hero-editorial.home-hero-photo-bg{
    min-height:0!important;padding:124px 0 32px!important;background:#f7f5ee!important;display:block!important;
  }
  .home-hero-photo-bg::before,.home-hero-photo-bg::after,
  .home-hero-photo-bg .hero-art-layer,
  .home-hero-photo-bg .home-hero-copy::before,
  .home-hero-photo-bg .home-hero-copy::after{display:none!important}
  .home-hero-photo-bg .home-hero-grid{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important}
  .home-hero-photo-bg .home-hero-copy{display:contents!important}
  .home-hero-copy .home-eyebrow{order:1;align-self:flex-start;margin:0 0 12px;padding:0;background:transparent;font-size:11px;letter-spacing:.12em}
  .home-hero-copy h1{order:2;font-size:clamp(32px,9.7vw,42px)!important;line-height:1.02!important;letter-spacing:-.05em!important;margin:0 0 20px!important;text-wrap:initial!important}
  .home-hero-photo-bg .home-hero-visual{order:3;display:flex!important;flex-direction:column;position:relative;margin:0!important;min-width:0!important;overflow:visible!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
  .home-hero-photo-bg .home-hero-visual img{display:block;order:1;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:16/9!important;object-fit:cover!important;object-position:center!important;border-radius:18px!important;box-shadow:none!important;transform:none!important}
  .home-hero-visual .home-photo-caption{order:2;position:static!important;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;justify-content:space-between;margin:10px 0 0;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;color:var(--forest)}
  .home-hero-visual .home-photo-caption strong{font-size:14px}
  .home-hero-visual .home-photo-caption span{font-size:12px;margin:0}
  .home-hero-visual .home-gallery-link-v88{order:3;position:static;align-self:flex-start;margin:6px 0 0;padding:10px 0;min-height:40px;box-sizing:border-box;border-radius:0;background:transparent;color:var(--forest);font-size:11px;letter-spacing:.025em;text-transform:none;backdrop-filter:none;transform:none}
  .home-hero-copy .home-action-selector{order:4;margin:12px 0 0;border-top:0}
  .home-action-selector-title{padding:0 0 10px;font-size:11px;letter-spacing:.09em}
  .home-action-main span{font-size:10px;letter-spacing:.07em}
  .home-action-main small{font-size:12px;letter-spacing:0}
  .home-action-mode{font-size:9px!important;letter-spacing:.03em;padding:7px 8px!important}
  .home-action-row{min-height:64px;gap:8px;padding-top:11px;padding-bottom:11px}
  .home-hero-copy .home-lead{order:5;margin:26px 0 0!important;font-size:15px!important;line-height:1.65!important}
  .home-hero-copy .home-trust{order:6;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;margin:24px 0 0!important;width:100%;gap:0!important}
  .home-trust div,.home-trust div:not(:first-child){padding:16px 10px!important;border-bottom:0!important;border-right:1px solid rgba(18,60,52,.18)!important}
  .home-trust div:first-child{padding-left:0!important}
  .home-trust div:last-child{padding-right:0!important;border-right:0!important}
  .home-trust strong{font-size:25px!important}
  .home-trust span{font-size:11px!important;line-height:1.4;letter-spacing:0!important;overflow-wrap:anywhere}
  .home-services-editorial .home-section-intro{gap:18px;margin-bottom:24px}
  .home-services-editorial .home-section-intro h2{font-size:clamp(32px,9.5vw,40px);line-height:1.05;letter-spacing:-.04em}
  .home-services-editorial .home-section-intro > div::after{margin-top:18px}
}

@media(max-width:680px){.home-proof-grid > *{min-width:0}.home-proof-copy h2{overflow-wrap:anywhere;hyphens:auto}}

/* Equal visual treatment for all three enquiry / booking links. */
.home-action-selector .home-action-row{
  margin:10px 0 0!important;
  padding:13px 14px!important;
  min-height:76px;
  border:0!important;
  border-radius:17px!important;
  background:var(--forest)!important;
  color:#fff!important;
}
.home-action-selector .home-action-row:hover{background:var(--forest-2)!important}
.home-action-selector .home-action-row .home-action-main span{color:#a9c9be}
.home-action-selector .home-action-row .home-action-main strong{color:#fff}
.home-action-selector .home-action-row .home-action-main small{color:#bfd1ca}
.home-action-selector .home-action-row .home-action-mode{border-color:rgba(255,255,255,.22);color:#fff}

/* Consistent service choices and explanatory copy across the site. */
.home-action-selector .home-action-row{grid-template-columns:minmax(0,1fr) auto}
.services-actions-v98 .services-action-card{
  background:var(--forest);color:#fff;border:0;border-radius:17px;box-shadow:none;
  min-height:170px;
}
.services-actions-v98 .services-action-card:hover{background:var(--forest-2);transform:none}
.services-actions-v98 .services-action-tag{color:#a9c9be;font-size:11px;letter-spacing:.07em}
.services-actions-v98 .services-action-card p{color:#bfd1ca;font-size:14px}
.services-actions-v98 .services-action-card h3{color:#fff}
.services-grid-v92 .service-list{height:auto!important;grid-template-rows:none!important;gap:12px!important}
.services-grid-v92 .service{grid-template-columns:32px minmax(0,1fr)!important;align-items:start;gap:16px!important;height:auto!important;min-height:0!important}
.service-copy{min-width:0}
.service-copy h3{margin:0!important}
.service-copy p{margin:9px 0 0;color:var(--muted);font-size:15px;line-height:1.6}
.booking-v91-note p{max-width:900px}
.project-info{gap:12px 32px}
.project-description{margin:0;color:var(--muted);font-size:16px;line-height:1.65;max-width:700px}
.project-year{color:var(--muted);font-size:13px;letter-spacing:.08em}
@media(min-width:901px){
  .project-info{grid-template-columns:minmax(0,1fr) minmax(180px,280px)}
  .project-info .project-year{grid-column:1;grid-row:1}
  .project-info .project-title{grid-column:1;grid-row:2}
  .project-info .project-description{grid-column:1;grid-row:3}
  .project-info .project-data{grid-column:2;grid-row:1/span 3;grid-template-columns:1fr;justify-self:stretch;align-self:center;font-size:14px}
}
@media(max-width:900px){
  .project-info{grid-template-columns:minmax(0,1fr)}
}

/* Desktop: a clear introduction, then work, services and experience. */
@media(min-width:901px){
  .home-hero-v7.home-hero-editorial.home-hero-photo-bg{min-height:0!important;padding:134px 0 72px!important}
  .home-hero-photo-bg .home-hero-grid{display:grid!important;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)!important;gap:48px!important;align-items:center!important}
  .home-hero-photo-bg .home-hero-copy{max-width:none!important}
  .home-hero-copy::before,.home-hero-copy::after{display:none!important}
  .home-hero-copy h1{font-size:clamp(44px,4.7vw,70px)!important;line-height:1.02!important;letter-spacing:-.045em!important;margin:18px 0 22px!important}
  .home-lead{font-size:17px!important;line-height:1.65!important}
  .home-eyebrow{font-size:12px;padding:0;background:transparent;border-radius:0;letter-spacing:.12em}
  .home-hero-visual{border-radius:24px!important;box-shadow:0 18px 42px rgba(18,60,52,.10)!important;background:transparent!important;overflow:visible!important}
  .home-hero-photo-bg .home-hero-visual img{border-radius:24px!important;width:100%!important;height:auto!important;box-shadow:none!important}
  .home-photo-caption{position:static!important;background:transparent!important;padding:14px 0 0!important;border-radius:0!important;box-shadow:none!important;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:baseline}
  .home-photo-caption strong{font-size:16px}
  .home-photo-caption span{font-size:13px;margin:0}
  .home-action-selector{margin-top:26px;border-top:0}
  .home-action-selector-title{font-size:12px;padding:0 0 4px;letter-spacing:.08em}
  .home-action-selector .home-action-row{min-height:76px!important;margin-top:10px!important;padding:14px 18px!important;gap:14px}
  .home-action-main{grid-template-columns:1fr;gap:2px}
  .home-action-main span{font-size:10px;letter-spacing:.07em}
  .home-action-main strong{font-size:18px;line-height:1.25}
  .home-action-main small{grid-column:1;font-size:13px;letter-spacing:0}
  .home-action-row > b{font-size:18px}
  .home-work-v7,.home-services-editorial{padding:76px 0!important}
  .home-work-editorial::before,.home-work-editorial::after{display:none!important}
  .home-section-intro{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:40px;margin-bottom:32px;align-items:end}
  .home-section-intro h2,.home-proof-copy h2,.home-final-card h2{font-size:clamp(38px,4vw,58px);line-height:1.07;letter-spacing:-.04em;text-wrap:initial}
  .home-section-intro > div::after{display:none}
  .home-section-intro > p{font-size:16px;line-height:1.65}
  .home-section-tag{font-size:11px;letter-spacing:.09em;background:transparent;padding:0;border-radius:0}
  .home-work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
  .home-work-grid .home-work-main,.home-work-grid .home-work-side{grid-row:auto;display:flex;flex-direction:column;min-height:0!important;border-radius:24px!important;background:transparent;box-shadow:none}
  .home-work-grid img{display:block;width:100%!important;height:auto!important;aspect-ratio:16/9;object-fit:cover;border-radius:24px!important}
  .home-work-meta{position:static;display:block;padding:16px 0 0;border-radius:0;background:transparent;backdrop-filter:none;font-size:13px}
  .home-work-meta strong{font-size:20px}
  .home-work-meta span{font-size:14px;margin-top:5px}
  .home-work-meta > div + div{margin-top:8px;color:var(--muted)}
  .home-section-cta{margin-top:28px}
  .home-section-cta a{font-size:14px;letter-spacing:.03em;text-transform:none}
  .home-services-editorial > .wrap{padding:44px;border-radius:24px;box-shadow:none}
  .home-services-editorial .home-service-grid{border-radius:18px}
  .home-services-editorial .home-service-card,.home-services-editorial .home-service-card:nth-child(n){min-height:190px!important;padding:26px!important}
  .home-services-editorial .home-service-card h3{margin-top:20px!important;font-size:26px;line-height:1.2}
  .home-services-editorial .home-service-card p{font-size:16px;line-height:1.6}
  .home-proof-v7{padding:76px 0}
  .home-proof-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:60px}
  .home-proof-copy p{font-size:16px;line-height:1.75}
  .home-proof-stats{gap:14px}
  .home-partners-v74{padding:48px 0!important}
  .home-partners-v74 > .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:60px;align-items:center}
  .home-partners-v74 .home-partners-grid{margin:0;gap:20px}
  .home-partners-v74 .home-partners-head{margin:0}
  .home-partners-v74 .home-partner-brand{min-height:110px;padding:18px;border-radius:18px}
  .home-final-v7{padding:64px 0;background:var(--cream)}
  .home-final-card{padding:40px;border-radius:24px;align-items:center;gap:40px}
  .home-final-card p{margin-top:18px;font-size:16px}
  .page-head p,.booking-v91-banner p{font-size:16px!important;line-height:1.6!important}
  .services-grid-v92 .service{padding:22px 24px!important;border-radius:18px!important}
  .service-copy h3{font-size:20px!important;line-height:1.25!important}
  .services-actions-v98{gap:20px;margin-top:40px}
  .services-actions-v98 .services-action-card h3{font-size:26px!important;line-height:1.15}
  .booking-v91-copy h2{font-size:42px!important;line-height:1.1!important;margin-top:16px!important}
  .booking-v91-copy p{font-size:16px!important}
  .booking-v91-meta{font-size:12px;letter-spacing:.03em;margin-top:24px}
  .project-media,.partner-card,.info-card,.form-card{border-radius:24px!important}
  .project-info .project-title{font-size:42px;line-height:1.1}
  .partner-card p{font-size:16px;line-height:1.65}
  .footer-links-v76{font-size:13px}
}

@media(min-width:901px){
  .home-hero-v7.home-hero-editorial.home-hero-photo-bg{background:linear-gradient(110deg,#f7f5ee,#edf3ed)!important}
  .home-hero-photo-bg::before,.home-hero-photo-bg::after,.home-hero-photo-bg .hero-art-layer{display:none!important}
  .home-hero-photo-bg .home-hero-visual{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important}
  .home-hero-photo-bg .home-photo-caption{background:transparent!important}
  .booking-v91-copy button{font-size:12px;letter-spacing:.04em;min-height:46px;border-radius:17px}
  .booking-v91-copy small{font-size:11px;letter-spacing:.03em;line-height:1.5}
}

/* Contact: a short first enquiry with optional project details. */
.contact-page .contact-layout{align-items:start;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr)!important;gap:32px!important;padding-bottom:64px!important}
.contact-page .contact-direct-card h2{font-size:28px;line-height:1.2;margin:0 0 8px}
.contact-person-role{font-size:14px;line-height:1.5;margin:0 0 22px;color:var(--muted)}
.contact-page .contact-direct-card{padding:28px!important}
.contact-page .direct-contact-row strong{font-size:clamp(16px,1.6vw,21px);overflow-wrap:anywhere}
.contact-page .form-card{padding:32px!important;min-width:0}
.contact-page .form-head h2{font-size:32px!important;line-height:1.15!important;margin:0 0 12px!important}
.contact-page .form-head p{font-size:16px;line-height:1.5}
.contact-page .field label{font-size:14px;line-height:1.5}
.contact-page .field input,.contact-page .field select,.contact-page .field textarea{font-size:16px;min-height:48px;width:100%;min-width:0;box-sizing:border-box}
.contact-page .field textarea{min-height:120px;resize:vertical}
.contact-page .field-help{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.contact-details{margin:22px 0;border-top:1px solid #ced9d2;border-bottom:1px solid #ced9d2}
.contact-details summary{cursor:pointer;padding:16px 0;font-size:16px;font-weight:600;line-height:1.5;color:var(--forest)}
.contact-details summary:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
.contact-details[open]{padding-bottom:20px}
.contact-details .form-grid{padding-top:6px}
.contact-next-step{font-size:14px;line-height:1.5;margin:16px 0 0;color:var(--muted)}
.contact-page .consent{font-size:14px;line-height:1.5;align-items:flex-start}
.contact-page .consent input{width:20px;height:20px;flex-shrink:0;margin-top:2px}
@media(max-width:900px){
.contact-page .contact-layout{grid-template-columns:1fr!important;gap:18px!important}
.contact-page .contact-aside{display:block!important}
.contact-page .contact-direct-card{padding:20px 24px!important}
.contact-page .contact-direct-card h2{font-size:24px}
.contact-person-role{margin-bottom:12px}
.contact-page .direct-contact-row{padding:10px 0!important;min-height:44px}
.contact-page .form-card{padding:26px!important}
}
@media(max-width:600px){
.contact-page .page-head{padding-bottom:18px!important}
.contact-page .page-head>.wrap{padding:24px!important;min-height:0!important}
.contact-page .page-head h1{font-size:34px!important;line-height:1.08!important;margin:12px 0!important}
.contact-page .page-head p{font-size:16px!important;line-height:1.5!important}
.contact-page .contact-layout{padding-bottom:36px!important}
.contact-page .contact-direct-card{padding:18px!important;border-radius:20px!important}
.contact-page .form-card{padding:22px 18px!important;border-radius:20px!important}
.contact-page .form-head h2{font-size:28px!important}
.contact-page .form-grid{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
.contact-page .field.full{grid-column:1!important}
.contact-page .form-footer{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:18px!important}
.contact-page .submit{width:100%;min-height:50px;font-size:16px}
}

/* Homepage sequence: shared banner, introduction, choices and full photograph. */
.home-banner>.wrap::before{background-image:url("assets/inner-banner-photo.webp")!important}
html[lang] .home-banner>.wrap::before{background-image:url("assets/inner-banner-photo.webp")!important}
.home-banner h1{max-width:760px!important}
.home-introduction{padding-top:0;padding-bottom:56px}
.home-introduction-text{max-width:1200px;margin:0 0 28px;font-size:18px;line-height:1.65;color:var(--muted)}
.home-introduction-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:start}
.home-introduction .home-action-selector{margin:0!important;padding:0!important;border:0!important;display:grid;gap:10px}
.home-introduction .home-action-selector-title{font-size:12px;line-height:1.5;padding:0 0 2px}
.home-introduction .home-action-row{margin:0!important;min-height:82px!important;padding:14px 18px!important;box-sizing:border-box}
.home-introduction .home-action-main span{font-size:12px;line-height:1.4}
.home-introduction .home-action-main strong{font-size:20px;line-height:1.3}
.home-introduction .home-action-main small{font-size:14px;line-height:1.4}
.home-intro-photo{min-width:0}
.home-intro-photo>img,.home-intro-project-link>img{display:block;width:100%;height:auto;border-radius:24px}
.home-intro-caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:12px;font-size:14px;line-height:1.5}
.home-intro-caption strong{font-size:16px;color:var(--forest)}
.home-intro-caption span{color:var(--muted)}
@media(max-width:900px){
.home-introduction-grid{grid-template-columns:1fr;gap:24px}
.home-introduction-text{font-size:16px;margin-bottom:22px}
.home-introduction{padding-bottom:36px}
.home-banner h1{font-size:clamp(34px,6.5vw,56px)!important;line-height:1.08!important}
}
@media(max-width:600px){
.home-banner>.wrap{padding:26px 22px!important;min-height:200px!important}
.home-banner h1{margin:18px 0 0!important}
.home-introduction .home-action-row{min-height:80px!important;padding:12px 16px!important}
.home-introduction .home-action-main strong{font-size:19px}
.home-intro-photo>img,.home-intro-project-link>img{border-radius:20px}
.home-intro-caption{flex-wrap:wrap;gap:4px 12px}
}

/* v11: readable personal introduction and consistent competition cards. */
.home-proof-v7{background:var(--cream)!important;color:var(--forest)!important;padding:56px 0 64px!important}
.home-proof-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:48px!important;align-items:center!important}
.home-proof-copy .home-section-tag{display:inline-block;color:#315c50!important;background:transparent!important;padding:0!important;font-size:12px!important;letter-spacing:.1em}
.home-proof-copy h2{color:var(--forest)!important;font-size:clamp(34px,3vw,48px)!important;line-height:1.12!important;letter-spacing:-.035em!important;margin:16px 0 20px!important}
.home-proof-copy p{color:#50645b!important;font-size:16px!important;line-height:1.75!important;margin:0!important;max-width:620px}
.home-proof-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important}
.home-proof-stats .proof-stat{background:#fffaf1!important;border:1px solid #d6ded4!important;border-radius:20px!important;padding:24px 20px!important;min-height:180px!important;justify-content:flex-start!important;gap:18px!important;box-shadow:none!important;min-width:0}
.proof-stat .proof-rank{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.home-proof-stats .proof-stat strong{font-size:56px!important;line-height:1!important;letter-spacing:-.045em!important;font-weight:500!important;color:var(--forest)!important}
.home-proof-stats .proof-stat .proof-place{font-size:14px!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important;color:#315c50!important}
.home-proof-stats .proof-stat>span{font-size:14px!important;line-height:1.6!important;letter-spacing:0!important;text-transform:none!important;color:#50645b!important}
@media(max-width:1100px){.home-proof-grid{grid-template-columns:1fr!important;gap:28px!important}.home-proof-copy p{max-width:760px}.home-proof-stats .proof-stat{min-height:160px!important}}
@media(max-width:600px){
.home-proof-v7{padding:36px 0 40px!important}
.home-proof-copy h2{font-size:34px!important}
.home-proof-stats{grid-template-columns:1fr!important;gap:10px!important}
.home-proof-stats .proof-stat{display:grid!important;grid-template-columns:minmax(100px,.7fr) minmax(0,1fr)!important;align-items:center!important;min-height:100px!important;padding:18px!important;gap:18px!important;border-radius:16px!important}
.home-proof-stats .proof-stat strong{font-size:44px!important}
}

/* Online booking link */
.booking-v91-copy .online-booking-link{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:46px;margin-top:14px;padding:12px 17px;border-radius:17px;background:var(--forest);color:#fff;font-size:14px;font-weight:750;text-decoration:none;text-align:center}.online-booking-link:hover{filter:brightness(1.15)}.online-booking-link:focus-visible{outline:3px solid #bd684d;outline-offset:4px}.booking-v91-copy .online-price{font-size:14px;line-height:1.6;margin-top:14px}

/* Native reservation form */
.reservation-panel{margin:32px auto 64px;padding:32px;background:#fffaf1;border:1px solid #d6ded4;border-radius:24px;box-sizing:border-box;color:#143e34}.reservation-intro h2{font-size:clamp(28px,4vw,42px);margin:12px 0}.reservation-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:960px}.reservation-form label{display:flex;flex-direction:column;gap:8px;font-size:16px;font-weight:600}.reservation-form input,.reservation-form select,.reservation-form textarea{box-sizing:border-box;width:100%;min-height:48px;padding:12px;border:1px solid #9daea5;border-radius:10px;background:white;color:#143e34;font:inherit;font-size:16px}.reservation-form p,.reservation-form label:has(textarea),#address-label{grid-column:1/-1}.reservation-button,.time-slot{min-height:48px;padding:12px 20px;border:1px solid #143e34;border-radius:12px;background:#143e34;color:white;font:inherit;cursor:pointer}.reservation-button:disabled{opacity:.5;cursor:not-allowed}.time-slots{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.time-slot{background:white;color:#143e34}.time-slot[aria-pressed=true]{background:#143e34;color:white}.booking-message{padding:16px;background:#edf3ef;border-radius:12px}.reservation-panel [hidden]{display:none!important}.reservation-panel :focus-visible{outline:3px solid #b8654a;outline-offset:3px}.reservation-panel p{font-size:16px;line-height:1.6}@media(max-width:650px){.reservation-panel{padding:20px;margin:24px 12px;width:auto}.reservation-form{grid-template-columns:1fr}.time-slot{flex:1 0 80px}}

/* V13.1 booking timeline: selected start + full reserved 15-minute block */
.time-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px;max-width:1180px}
.time-slot{position:relative;min-width:0;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}
.time-slot:not(:disabled):hover{transform:translateY(-1px);background:#edf3ef}
.time-slot-tail{opacity:1!important;background:#f5f2ea;color:#738078;border-style:dashed;cursor:default}
.time-slot-selected,.time-slot-selected:disabled{background:#a8beb7!important;color:#0d3d34!important;border-color:#6f9589!important;border-style:solid!important;opacity:1!important}
.time-slot-start{background:#143e34!important;color:#fff!important;border-color:#143e34!important;font-weight:700}
.time-slot-start::after{content:'ZAČÁTEK';position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);font-size:9px;letter-spacing:.08em;color:#143e34;white-space:nowrap}
.time-slots:has(.time-slot-start){margin-bottom:36px}
@media(max-width:650px){.time-slots{grid-template-columns:repeat(4,1fr);gap:6px}.time-slot{padding:10px 5px;font-size:14px}}


/* V13.6 — compact footer: logo + vertical contacts, nav on the right, one divider only */
.footer{padding:46px 0 24px!important}
.footer-main{display:grid!important;grid-template-columns:auto minmax(210px,.72fr) 1fr!important;gap:28px!important;align-items:center!important}
.footer-logo.v80-footer-logo{grid-column:1!important;grid-row:1!important;margin:0!important}
.footer-contact-v74{grid-column:2!important;grid-row:1!important;margin:0!important;padding:0!important;border-top:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:9px!important}
.footer-links-v76{grid-column:3!important;grid-row:1!important;align-self:center!important;justify-content:flex-end!important}
.footer-bottom{margin-top:34px!important;padding-top:16px!important;border-top:1px solid rgba(255,255,255,.14)!important}
@media(max-width:900px){.footer-main{grid-template-columns:auto 1fr!important}.footer-links-v76{grid-column:1/-1!important;grid-row:2!important;justify-content:flex-start!important}.footer-contact-v74{grid-column:2!important}}
@media(max-width:560px){.footer-main{grid-template-columns:1fr!important}.footer-logo.v80-footer-logo,.footer-contact-v74,.footer-links-v76{grid-column:1!important;grid-row:auto!important}.footer-contact-v74{margin-top:6px!important}.footer-links-v76{margin-top:12px!important}.footer-bottom{margin-top:24px!important}}


/* V14.0 portfolio extension — original gallery preserved */
.portfolio-extra{padding-top:54px}
.portfolio-extra-heading{margin:0 0 24px}.portfolio-extra-heading>span{display:block;font-size:clamp(28px,3vw,42px);font-weight:700;letter-spacing:-.03em;color:#164b40}.portfolio-extra-heading p{max-width:680px;color:#687872;margin:8px 0 0}.portfolio-extra-heading.light>span,.portfolio-extra-heading.light p{color:#fff}
.project-media .portfolio-open{display:block;width:100%;border:0;padding:0;background:none;cursor:zoom-in}.project-media .portfolio-open img{display:block;width:100%;height:auto}
.project-detail-title{margin-top:18px;font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:800;color:#71807a}
.project-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.project-thumbs.six{grid-template-columns:repeat(3,1fr)}.project-thumbs button,.process-row button,.award-row button{border:0;padding:0;background:none;cursor:zoom-in;overflow:hidden;border-radius:10px}.project-thumbs img{width:100%;height:118px;object-fit:cover;display:block;transition:transform .25s ease}.project-thumbs button:hover img{transform:scale(1.025)}
.portfolio-story{padding-top:58px}.process-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.process-row figure{margin:0}.process-row img{display:block;width:100%;height:220px;object-fit:cover;border-radius:12px}.process-row figcaption{margin-top:9px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#65756f}
.portfolio-awards{padding:64px 0}.award-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.award-row article{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px}.award-row img{width:100%;height:280px;object-fit:cover;border-radius:10px;display:block}.award-row h2{font-size:17px;margin:14px 4px 4px;color:#fff}.award-row p{color:rgba(255,255,255,.72);margin:0 4px 5px}
.portfolio-lightbox[hidden]{display:none}.portfolio-lightbox{position:fixed;z-index:9999;inset:0;background:rgba(3,22,18,.94);display:flex;align-items:center;justify-content:center;padding:36px}.portfolio-lightbox img{max-width:min(1500px,95vw);max-height:90vh;object-fit:contain}.portfolio-close{position:absolute;right:22px;top:18px;border:0;background:none;color:#fff;font-size:42px;line-height:1;cursor:pointer}
@media(max-width:900px){.process-row{grid-template-columns:repeat(2,1fr)}.award-row{grid-template-columns:1fr 1fr}.project-thumbs img{height:100px}}
@media(max-width:600px){.project-thumbs,.project-thumbs.six{grid-template-columns:repeat(2,1fr)}.process-row,.award-row{grid-template-columns:1fr}.process-row img,.award-row img{height:auto}.portfolio-lightbox{padding:18px}}

/* V14.1 lightbox fix */
.portfolio-open{position:relative;z-index:1;pointer-events:auto!important}
.portfolio-open img{pointer-events:none}
.portfolio-lightbox{z-index:2147483000!important;cursor:zoom-out}
.portfolio-lightbox img{cursor:default;box-shadow:0 18px 70px rgba(0,0,0,.45)}
.portfolio-close{z-index:2}



/* V14.7 — expanded awards section */
.awards-v147{padding:86px 0 96px;background:#123d34;color:#fff;overflow:hidden}
.awards-v147 .portfolio-open{display:block;width:100%;border:0;background:none;padding:0;cursor:zoom-in}
.awards-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:70px;align-items:end;margin-bottom:38px}
.awards-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#a9d4c8;margin-bottom:12px}
.awards-intro h2{margin:0;font-size:clamp(48px,6.5vw,92px);line-height:.9;letter-spacing:-.055em;font-weight:520}
.awards-intro h2 em{font-style:normal;color:#bfe2d8;font-weight:420}
.awards-intro>p{margin:0;color:rgba(255,255,255,.76);font-size:15px;line-height:1.72;max-width:580px}
.award-feature-grid{display:grid;grid-template-columns:1.42fr .78fr;gap:18px;margin-bottom:18px}
.award-feature{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);border-radius:25px;overflow:hidden}
.award-feature button{aspect-ratio:4/3;overflow:hidden}
.award-feature:not(.award-feature-main) button{aspect-ratio:3/4}
.award-feature img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.award-feature button:hover img{transform:scale(1.018)}
.award-feature-copy{padding:24px 25px 27px}
.award-feature-copy>span,.award-journal span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:#a9d4c8}
.award-feature-copy h3{margin:8px 0 8px;font-size:clamp(22px,2.5vw,35px);letter-spacing:-.035em;font-weight:550}
.award-feature-copy p{margin:0;color:rgba(255,255,255,.7);line-height:1.65;font-size:13px}
.award-journal{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px;align-items:stretch;background:#f2eee4;color:#173f37;border-radius:25px;padding:18px;margin:18px 0 50px}
.award-journal>div{padding:24px 28px;align-self:center}
.award-journal h3{font-size:clamp(28px,3.5vw,47px);line-height:1.02;letter-spacing:-.04em;margin:9px 0 14px}
.award-journal p{color:#5a6d66;line-height:1.65;font-size:13px;margin:0;max-width:570px}
.award-journal button{border-radius:17px;overflow:hidden;min-height:320px}
.award-journal img{width:100%;height:100%;object-fit:cover;display:block}
.awards-subhead{font-size:13px;text-transform:uppercase;letter-spacing:.16em;margin:0 0 17px;color:#b6d8cf}
.award-results-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:52px}
.award-result-card{min-height:210px;padding:20px 18px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.11)}
.award-result-year{font-size:11px;letter-spacing:.14em;font-weight:800;color:#9fd0c4;margin-bottom:22px}
.award-result-card h3{font-size:19px;line-height:1.12;letter-spacing:-.025em;margin:0 0 13px;color:#fff}
.award-result-card p{font-size:12px;line-height:1.75;color:rgba(255,255,255,.72);margin:0}
.award-photo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.award-photo-grid button{border-radius:13px;overflow:hidden;aspect-ratio:1/1;background:rgba(255,255,255,.06)}
.award-photo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.award-photo-grid button:hover img{transform:scale(1.03)}
@media(max-width:1050px){.award-results-grid{grid-template-columns:repeat(3,1fr)}.award-photo-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.awards-v147{padding:68px 0}.awards-intro,.award-feature-grid,.award-journal{grid-template-columns:1fr}.awards-intro{gap:22px}.award-feature:not(.award-feature-main) button{aspect-ratio:4/3}.award-journal button{min-height:0;aspect-ratio:4/3}.award-results-grid{grid-template-columns:1fr 1fr}.award-photo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:470px){.award-results-grid{grid-template-columns:1fr}.award-result-card{min-height:auto}.awards-intro h2{font-size:47px}}

/* V14.8 — project detail crops from supplied original photographs */
.project-main-open{display:block;width:100%;border:0;padding:0;background:none;cursor:zoom-in}
.project-main-open img{display:block;width:100%;height:auto}
.project-media .project-thumbs{padding:0 0 2px;margin-top:10px}
.project-media .project-thumbs img{height:150px;object-fit:cover}
@media(max-width:900px){.project-media .project-thumbs img{height:110px}}
@media(max-width:600px){.project-media .project-thumbs{grid-template-columns:repeat(3,1fr)}.project-media .project-thumbs img{height:82px}}


/* =======================================================
   V15.0 — SERVICES: ONE STATIC PHOTO ACROSS THE FULL LIST
   ======================================================= */

/* The photo is a single visual spanning the whole services list.
   It does NOT use sticky/fixed/parallax behaviour. */
.services-grid-v92{
  align-items:stretch!important;
}

.services-visual-v92{
  position:static!important;
  top:auto!important;
  height:auto!important;
  align-self:stretch!important;
}

.services-photo-v94{
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  aspect-ratio:auto!important;
  margin:0!important;
}

.services-photo-v94 img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}

/* Let the list define the block height; the image follows that exact height. */
.services-grid-v92 .service-list{
  height:auto!important;
  align-self:stretch!important;
}

/* Tablet: keep the same static full-height principle while two columns fit. */
@media (min-width:901px) and (max-width:1180px){
  .services-visual-v92{
    position:static!important;
    height:auto!important;
    align-self:stretch!important;
  }
  .services-photo-v94{
    width:100%!important;
    height:100%!important;
    aspect-ratio:auto!important;
  }
}

/* Phone/portrait tablet: photo becomes a calm banner above the service rows. */
@media (max-width:900px){
  .services-visual-v92{
    position:static!important;
    width:100%!important;
    height:auto!important;
  }
  .services-photo-v94{
    width:100%!important;
    height:clamp(260px,62vw,430px)!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    border-radius:24px!important;
  }
  .services-photo-v94 img{
    object-position:center 43%!important;
  }
}

/* V15.1 — photo-only awards strip on homepage */
.home-awards-strip{padding:36px 0 54px}
.home-awards-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}
.home-awards-head h2{margin:0;font-size:clamp(28px,3vw,44px);font-weight:500;letter-spacing:-.02em}
.home-awards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.home-awards-grid .portfolio-open{display:block;border:0;padding:0;background:none;overflow:hidden;border-radius:18px;cursor:zoom-in;aspect-ratio:4/3}
.home-awards-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.home-awards-grid .portfolio-open:hover img{transform:scale(1.025)}
@media(max-width:900px){.home-awards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.home-awards-strip{padding:28px 0 40px}.home-awards-grid{gap:8px}.home-awards-grid .portfolio-open{border-radius:14px}}

/* V15.2 — Fireworks Over the Green Mountain */
#fireworks .project-thumbs{grid-template-columns:repeat(6,minmax(0,1fr))}
#fireworks .project-thumbs img{width:100%;height:132px;object-fit:cover}
@media(max-width:900px){
  #fireworks .project-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
  #fireworks .project-thumbs img{height:110px}
}
@media(max-width:560px){
  #fireworks .project-thumbs img{height:86px}
}

/* V15.3 — Step Aside */
#step-aside .project-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}
#step-aside .project-thumbs img{width:100%;height:132px;object-fit:cover}
@media(max-width:900px){
  #step-aside .project-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
  #step-aside .project-thumbs img{height:120px}
}
@media(max-width:560px){
  #step-aside .project-thumbs img{height:96px}
}


/* V15.4 — stable project-aware lightbox navigation */
html.lightbox-open,body.lightbox-open{overflow:hidden!important}
.portfolio-lightbox{touch-action:pan-y;user-select:none}
.portfolio-lightbox img{max-width:min(1600px,94vw)!important;max-height:90vh!important;width:auto!important;height:auto!important;object-fit:contain!important;cursor:pointer!important}
.portfolio-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:58px;height:76px;border:0;border-radius:18px;background:rgba(0,0,0,.34);color:#fff;font-size:58px;line-height:1;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(4px)}
.portfolio-nav:hover{background:rgba(0,0,0,.52)}
.portfolio-prev{left:18px}.portfolio-next{right:18px}
.portfolio-count{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:3;color:#fff;background:rgba(0,0,0,.36);border-radius:999px;padding:5px 11px;font-size:13px;letter-spacing:.04em;pointer-events:none}
.portfolio-lightbox:not(.has-gallery-nav) .portfolio-count{display:none}
@media(max-width:700px){
  .portfolio-lightbox{padding:14px!important}
  .portfolio-nav{width:44px;height:58px;border-radius:14px;font-size:44px;background:rgba(0,0,0,.28)}
  .portfolio-prev{left:7px}.portfolio-next{right:7px}
  .portfolio-count{bottom:8px}
}

/* V15.8 — all final user-supplied project detail sets */
#against .project-thumbs{grid-template-columns:repeat(6,minmax(0,1fr))}
#against .project-thumbs img{width:100%;height:132px;object-fit:cover}
#silent .project-thumbs{grid-template-columns:repeat(5,minmax(0,1fr))}
#silent .project-thumbs img{width:100%;height:132px;object-fit:cover}
#diamonds .project-thumbs{grid-template-columns:repeat(5,minmax(0,1fr))}
#diamonds .project-thumbs img{width:100%;height:132px;object-fit:cover}
#spring .project-thumbs{grid-template-columns:repeat(6,minmax(0,1fr))}
#spring .project-thumbs img{width:100%;height:132px;object-fit:cover}
#closure .project-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
#closure .project-thumbs img{width:100%;height:132px;object-fit:cover}
@media(max-width:900px){
#against .project-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
#against .project-thumbs img{height:110px}
#silent .project-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
#silent .project-thumbs img{height:110px}
#diamonds .project-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
#diamonds .project-thumbs img{height:110px}
#spring .project-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
#spring .project-thumbs img{height:110px}
#closure .project-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
#closure .project-thumbs img{height:110px}
}
@media(max-width:560px){
#against .project-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
#against .project-thumbs img{height:86px}
#silent .project-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
#silent .project-thumbs img{height:86px}
#diamonds .project-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
#diamonds .project-thumbs img{height:86px}
#spring .project-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
#spring .project-thumbs img{height:86px}
#closure .project-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
#closure .project-thumbs img{height:86px}
}

/* V15.9 — cleaner lightbox controls */
.portfolio-nav{display:none!important}
.portfolio-lightbox img{cursor:ew-resize!important}

/* V16.0 — Partners */
.partner-card-aquael{background:rgba(207,234,236,.72)!important}
.aquael-logo{display:flex;align-items:center;min-height:86px}
.aquael-logo img{width:min(330px,75%);height:auto;display:block}
.partner-products{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.partner-products span{display:inline-flex;padding:7px 11px;border:1px solid rgba(18,60,52,.15);border-radius:999px;font-size:11px;letter-spacing:.04em;background:rgba(255,255,255,.32)}
.akvarista-logo{background:transparent!important;padding:0!important;border-radius:0!important}
.akvarista-logo img{mix-blend-mode:multiply;display:block}
.partner-card-akvarista{background:rgba(239,230,168,.65)!important}


/* V16.2 — Partners editorial redesign */
.partners-head p{max-width:760px}
.partners-story{padding-top:40px}
.partners-stack{display:grid;gap:28px}
.partner-story{
  border-radius:30px;
  overflow:hidden;
  border:1px solid rgba(17,56,49,.08);
  box-shadow:0 18px 50px rgba(20,54,47,.06);
}
.partner-story h2{
  margin:0 0 20px;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(34px,4vw,58px);
  line-height:1;
}
.partner-story p{
  margin:0 0 16px;
  max-width:760px;
  color:var(--muted);
  line-height:1.75;
  font-size:15px;
}
.partner-story-yokuchi{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  background:#f4efe7;
  min-height:650px;
}
.partner-story-yokuchi .partner-story-copy{
  padding:58px 54px 52px;
  align-self:center;
}
.partner-feature-media{
  margin:0;
  min-height:100%;
  background:#111;
}
.partner-feature-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.partner-brand{
  margin:20px 0 32px;
  display:flex;
  align-items:center;
  min-height:70px;
}
.partner-brand img{display:block;max-width:320px;max-height:82px;width:auto;height:auto}
.partner-story-aquael,
.partner-story-akvarista{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);
  gap:0;
}
.partner-story-aquael{background:#dfeff0}
.partner-story-akvarista{background:#f1ebbd}
.partner-story-brandcol{
  padding:52px 44px;
  border-right:1px solid rgba(17,56,49,.09);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.partner-story-copy-wide{padding:52px 58px}
.partner-brand-aquael img{max-width:280px;width:100%}
.partner-brand-akvarista{
  background:transparent!important;
  overflow:hidden;
}
.partner-brand-akvarista img{
  max-width:330px;
  width:100%;
  mix-blend-mode:multiply;
}
.partner-product-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:24px 0 28px;
}
.partner-product-list span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px;
  border:1px solid rgba(17,56,49,.16);
  border-radius:999px;
  background:rgba(255,255,255,.28);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.045em;
}
.partner-visit{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.13em;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
.partner-highlight{
  border-left:2px solid rgba(17,56,49,.28);
  padding-left:20px;
}
@media(max-width:900px){
  .partner-story-yokuchi,
  .partner-story-aquael,
  .partner-story-akvarista{grid-template-columns:1fr}
  .partner-story-yokuchi .partner-story-copy,
  .partner-story-copy-wide,
  .partner-story-brandcol{padding:38px 30px}
  .partner-story-brandcol{border-right:0;border-bottom:1px solid rgba(17,56,49,.09)}
  .partner-feature-media{min-height:0;aspect-ratio:1080/1350}
  .partner-feature-media img{object-fit:cover}
}
@media(max-width:560px){
  .partners-stack{gap:20px}
  .partner-story{border-radius:24px}
  .partner-story-yokuchi .partner-story-copy,
  .partner-story-copy-wide,
  .partner-story-brandcol{padding:30px 22px}
  .partner-brand{margin:14px 0 24px}
  .partner-story p{font-size:15px}
  .partner-product-list span{font-size:10px}
}

/* V16.3 — partner refinements */
.partner-story-yokuchi{grid-template-columns:minmax(0,1.22fr) minmax(330px,.78fr);min-height:590px}
.partner-story-yokuchi .partner-feature-media{margin:34px 34px 34px 0;border-radius:22px;overflow:hidden;min-height:auto}
.partner-story-yokuchi .partner-feature-media img{object-fit:cover}
.partner-story-akvarista{position:relative}
.akvarista-showroom{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:12px;
  padding:0 18px 18px;
}
.akvarista-photo{margin:0;border-radius:18px;overflow:hidden;background:#15211e}
.akvarista-photo img{width:100%;height:100%;display:block;object-fit:cover}
.akvarista-photo-tank{aspect-ratio:4/3}
.akvarista-photo-work{aspect-ratio:16/9}
@media(max-width:900px){
 .partner-story-yokuchi{grid-template-columns:1fr}
 .partner-story-yokuchi .partner-feature-media{margin:0 24px 24px;aspect-ratio:1080/1350}
 .akvarista-showroom{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .partner-story-yokuchi .partner-feature-media{margin:0 14px 14px}
 .akvarista-showroom{grid-template-columns:1fr;padding:0 12px 12px}
 .akvarista-photo-tank,.akvarista-photo-work{aspect-ratio:16/10}
}


/* V16.4 — unified partner cards, smaller partner visuals */
.partner-story-yokuchi,
.partner-story-akvarista,
.partner-story-aquael{
  display:grid;
  grid-template-columns:minmax(0,1.36fr) minmax(280px,.64fr);
  min-height:0;
}
.partner-story-yokuchi{background:#f4efe7}
.partner-story-akvarista{background:#f1ebbd}
.partner-story-aquael{background:#dfeff0}

.partner-story-yokuchi .partner-story-copy,
.partner-story-akvarista .partner-story-copy,
.partner-story-aquael .partner-story-copy{
  padding:50px 52px;
  align-self:center;
}

.partner-story-yokuchi .partner-feature-media,
.partner-story-akvarista .partner-feature-media,
.partner-story-aquael .partner-feature-media{
  margin:28px 28px 28px 0;
  border-radius:20px;
  overflow:hidden;
  min-height:0;
  align-self:center;
  aspect-ratio:4/5;
  background:#111;
}

.partner-story-yokuchi .partner-feature-media img,
.partner-story-akvarista .partner-feature-media img,
.partner-story-aquael .partner-feature-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.partner-feature-media-akvarista{aspect-ratio:4/5!important}
.partner-feature-media-akvarista img{object-position:56% center}

.partner-feature-media-aquael{aspect-ratio:4/3!important;background:#05131b!important}
.partner-feature-media-aquael img{object-fit:contain!important}

.partner-brand-akvarista img{
  max-width:320px;
  width:100%;
  mix-blend-mode:multiply;
}
.partner-brand-aquael img{max-width:270px;width:100%}

@media(max-width:900px){
  .partner-story-yokuchi,
  .partner-story-akvarista,
  .partner-story-aquael{grid-template-columns:1fr}

  .partner-story-yokuchi .partner-story-copy,
  .partner-story-akvarista .partner-story-copy,
  .partner-story-aquael .partner-story-copy{padding:36px 30px}

  .partner-story-yokuchi .partner-feature-media,
  .partner-story-akvarista .partner-feature-media,
  .partner-story-aquael .partner-feature-media{
    width:min(430px,calc(100% - 48px));
    margin:0 auto 24px;
    aspect-ratio:4/3;
  }
}
@media(max-width:560px){
  .partner-story-yokuchi .partner-story-copy,
  .partner-story-akvarista .partner-story-copy,
  .partner-story-aquael .partner-story-copy{padding:30px 22px}

  .partner-story-yokuchi .partner-feature-media,
  .partner-story-akvarista .partner-feature-media,
  .partner-story-aquael .partner-feature-media{
    width:calc(100% - 28px);
    margin:0 14px 14px;
  }
}

/* V16.5 — partner visuals 20% smaller on desktop */
@media(min-width:901px){
  .partner-story-yokuchi,
  .partner-story-akvarista,
  .partner-story-aquael{
    grid-template-columns:minmax(0,1.49fr) minmax(240px,.51fr);
  }
  .partner-story-yokuchi .partner-feature-media,
  .partner-story-akvarista .partner-feature-media,
  .partner-story-aquael .partner-feature-media{
    width:80%;
    justify-self:end;
    margin:28px 28px 28px 0;
  }
}


/* V16.6 — partner image scale + photographic service CTAs */
@media(min-width:901px){
  /* Keep the generous right-hand visual zone, but make the image itself smaller. */
  .partner-story-yokuchi,
  .partner-story-akvarista,
  .partner-story-aquael{
    grid-template-columns:minmax(0,1.28fr) minmax(360px,.72fr);
  }
  .partner-story-yokuchi .partner-feature-media,
  .partner-story-akvarista .partner-feature-media,
  .partner-story-aquael .partner-feature-media{
    width:76%;
    max-width:390px;
    justify-self:center;
    margin:34px 28px 34px 0;
  }
}

/* Real photography from the existing Nature Aquarium project — no generated images. */
.services-actions-v98 .services-action-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:176px;
  padding-right:40%;
  background:var(--forest);
}
.services-actions-v98 .services-action-card::before{
  content:"";
  position:absolute;
  z-index:-2;
  inset:0 0 0 42%;
  background-position:center;
  background-size:cover;
  transition:transform .35s ease;
}
.services-actions-v98 .services-action-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,var(--forest) 0%,var(--forest) 39%,rgba(17,68,58,.93) 49%,rgba(17,68,58,.42) 69%,rgba(17,68,58,.10) 100%);
}
.services-actions-v98 .services-action-visual-project::before{
  background-image:url('assets/against-original.jpg');
  background-position:62% center;
}
.services-actions-v98 .services-action-visual-maintenance::before{
  background-image:url('assets/services-detail.jpg');
  background-position:50% 58%;
}
.services-actions-v98 .services-action-visual-online::before{
  background-image:url('assets/silent-original.jpg');
  background-position:67% center;
}
.services-actions-v98 .services-action-card:hover::before{transform:scale(1.035)}
.services-actions-v98 .services-action-card:hover{background:var(--forest);transform:translateY(-2px)}
.services-actions-v98 .services-action-tag,
.services-actions-v98 .services-action-card p{color:#c4d7d0}
.services-actions-v98 .services-action-card h3{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.12)}
@media(max-width:760px){
 .services-actions-v98 .services-action-card{padding-right:32%;min-height:158px}
 .services-actions-v98 .services-action-card::before{inset:0 0 0 48%}
 .services-actions-v98 .services-action-card::after{background:linear-gradient(90deg,var(--forest) 0%,var(--forest) 48%,rgba(17,68,58,.72) 72%,rgba(17,68,58,.18) 100%)}
}

/* V16.8 — visual CTAs on homepage + refined services overview */
.home-visual-cta{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .22s ease, box-shadow .22s ease;
}
.home-visual-cta::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background-position:right center;
  background-size:52% auto;
  background-repeat:no-repeat;
  opacity:.88;
}
.home-visual-cta::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#12493f 0%,#12493f 52%,rgba(18,73,63,.88) 65%,rgba(18,73,63,.30) 100%);
}
.home-visual-cta-1::before{background-image:url("/assets/dragon/dragon-detail-3.webp")}
.home-visual-cta-2::before{background-image:url("/assets/akvarista-showroom-work.webp")}
.home-visual-cta-3::before{background-image:url("/assets/services-detail-vertical.webp")}
.home-visual-cta:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(12,50,43,.13)}

/* Bottom homepage services: keep it clean, but make each service feel interactive. */
.services-grid > *{
  position:relative;
  transition:background-color .2s ease, transform .2s ease;
}
.services-grid > *:hover{
  background:rgba(255,255,255,.075);
}
.services-grid > *::after{
  content:"→";
  position:absolute;
  right:22px;
  top:22px;
  opacity:0;
  transform:translateX(-5px);
  transition:opacity .2s ease,transform .2s ease;
}
.services-grid > *:hover::after{opacity:.75;transform:translateX(0)}
.services-grid .service-number,
.services-grid [class*="number"]{
  font-size:.78rem;
  letter-spacing:.08em;
  opacity:.9;
}
.services-overview a[href*="services"],
.services-section a[href*="services"]{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 15px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:999px;
  text-decoration:none;
  transition:background-color .2s ease,border-color .2s ease;
}
.services-overview a[href*="services"]:hover,
.services-section a[href*="services"]:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.42);
}
@media(max-width:760px){
  .home-visual-cta::before{background-size:66% auto}
  .home-visual-cta::after{background:linear-gradient(90deg,#12493f 0%,#12493f 62%,rgba(18,73,63,.42) 100%)}
}


/* V16.9 — stronger homepage CTAs + refined service overview */
.home-action-row.home-visual-cta{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#12493f;
  transition:transform .22s ease,box-shadow .22s ease;
}
.home-action-row.home-visual-cta::before{
  content:"";
  position:absolute;
  z-index:-2;
  inset:0 0 0 48%;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
  opacity:1;
  transition:transform .35s ease;
}
.home-action-row.home-visual-cta::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,#12493f 0%,#12493f 44%,rgba(18,73,63,.94) 54%,rgba(18,73,63,.52) 72%,rgba(18,73,63,.12) 100%);
}
.home-action-row.home-visual-cta-1::before{background-image:url("assets/against-original.jpg");background-position:64% center}
.home-action-row.home-visual-cta-2::before{background-image:url("assets/services-detail.jpg");background-position:50% 58%}
.home-action-row.home-visual-cta-3::before{background-image:url("assets/silent-original.jpg");background-position:67% center}
.home-action-row.home-visual-cta:hover::before{transform:scale(1.04)}
.home-action-row.home-visual-cta:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(12,50,43,.14)}
.home-action-row.home-visual-cta .home-action-main,.home-action-row.home-visual-cta>b{position:relative;z-index:1}

.home-services-v7 .wrap{padding-top:34px;padding-bottom:32px}
.home-services-v7 .home-section-intro{margin-bottom:20px}
.home-service-grid{border-radius:18px;overflow:hidden}
a.home-service-card{
  display:block;
  position:relative;
  text-decoration:none;
  color:inherit;
  min-height:150px;
  transition:background-color .22s ease,transform .22s ease;
}
a.home-service-card>span:first-child{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:28px;
  padding:0 8px;
  margin-bottom:15px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
}
a.home-service-card::after{
  content:"↗";
  position:absolute;
  right:24px;
  top:24px;
  font-size:18px;
  color:rgba(255,255,255,.82);
  opacity:.25;
  transform:translate(-4px,4px);
  transition:opacity .22s ease,transform .22s ease;
}
a.home-service-card:hover{background:rgba(255,255,255,.075)}
a.home-service-card:hover::after{opacity:1;transform:translate(0,0)}
.home-services-v7 .home-section-cta a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.home-services-v7 .home-section-cta a:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.42);transform:translateX(2px)}
@media(max-width:760px){
  .home-action-row.home-visual-cta::before{inset:0 0 0 44%}
  .home-action-row.home-visual-cta::after{background:linear-gradient(90deg,#12493f 0%,#12493f 50%,rgba(18,73,63,.72) 73%,rgba(18,73,63,.18) 100%)}
  a.home-service-card{min-height:0}
}

/* V16.10 — mobile density and scale pass */
@media(max-width:680px){
  /* Keep the strong mobile opening, but make the rest of the page lighter and faster to scan. */
  .section{padding:54px 0}
  .wrap{width:min(100% - 24px,var(--max))}

  /* Homepage service overview: 2 × 2 instead of four oversized stacked cards. */
  .home-services-v7.home-services-editorial{padding:38px 0 34px!important}
  .home-services-editorial > .wrap{padding:24px 16px 18px!important;border-radius:20px!important}
  .home-services-editorial .home-section-intro{margin-bottom:16px!important;gap:12px!important}
  .home-services-editorial .home-section-intro h2{font-size:clamp(30px,8.7vw,36px)!important;line-height:1.02!important}
  .home-services-editorial .home-section-intro > p{font-size:13px!important;line-height:1.5!important}
  .home-services-editorial .home-service-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;border-radius:15px!important}
  .home-services-editorial .home-service-card,
  .home-services-editorial .home-service-card:nth-child(n){min-height:146px!important;padding:15px 14px!important}
  .home-services-editorial .home-service-card > span{min-width:32px!important;height:24px!important;margin-bottom:10px!important;font-size:9px!important}
  .home-services-editorial .home-service-card h3{margin:0 0 8px!important;padding-right:20px;font-size:18px!important;line-height:1.12!important}
  .home-services-editorial .home-service-card p{margin:0!important;font-size:11.5px!important;line-height:1.42!important}
  .home-services-editorial .home-service-card::after{right:12px!important;top:13px!important;font-size:14px!important}
  .home-services-editorial .home-section-cta{margin-top:14px!important}
  .home-services-editorial .home-section-cta a{padding:8px 12px!important;font-size:12px!important}

  /* Homepage project preview: slightly tighter cards and metadata. */
  .home-work-v7{padding:52px 0!important}
  .home-work-grid{gap:12px!important}
  .home-work-grid img{border-radius:16px!important}
  .home-work-meta{padding-top:10px!important}
  .home-work-meta strong{font-size:16px!important}
  .home-work-meta span,.home-work-meta>div+div{font-size:11px!important}

  /* Gallery / "Moje práce": main image stays important; detail thumbnails become true thumbnails. */
  .project{padding:10px!important;margin-bottom:26px!important;border-radius:20px!important}
  .project-media{border-radius:14px!important}
  .project-info{padding-top:12px!important;gap:14px!important}
  .project-title{font-size:31px!important}
  .project-data{gap:8px!important;font-size:11px!important}
  .project-media .project-thumbs,
  #against .project-thumbs,#silent .project-thumbs,#diamonds .project-thumbs,#spring .project-thumbs,#closure .project-thumbs,
  #fireworks .project-thumbs,#step-aside .project-thumbs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    margin-top:7px!important;
  }
  .project-media .project-thumbs img,
  #against .project-thumbs img,#silent .project-thumbs img,#diamonds .project-thumbs img,#spring .project-thumbs img,#closure .project-thumbs img,
  #fireworks .project-thumbs img,#step-aside .project-thumbs img{
    height:62px!important;
    border-radius:7px!important;
  }
  .project-detail-title{margin-top:11px!important;font-size:10px!important}

  /* Generic card rhythm on phone. */
  .partner-card,.info-card,.form-card{border-radius:18px!important}
  .home-proof-v7{padding:48px 0!important}
  .home-proof-grid{gap:24px!important}
}

@media(max-width:380px){
  .home-services-editorial .home-service-card,
  .home-services-editorial .home-service-card:nth-child(n){min-height:138px!important;padding:13px 12px!important}
  .home-services-editorial .home-service-card h3{font-size:17px!important}
  .home-services-editorial .home-service-card p{font-size:11px!important}
  .project-media .project-thumbs,
  #against .project-thumbs,#silent .project-thumbs,#diamonds .project-thumbs,#spring .project-thumbs,#closure .project-thumbs,
  #fireworks .project-thumbs,#step-aside .project-thumbs{gap:5px!important}
  .project-media .project-thumbs img,
  #against .project-thumbs img,#silent .project-thumbs img,#diamonds .project-thumbs img,#spring .project-thumbs img,#closure .project-thumbs img,
  #fireworks .project-thumbs img,#step-aside .project-thumbs img{height:56px!important}
}


/* =======================================================
   V16.11 — COMPLETE PHONE SCALE / DENSITY AUDIT
   Desktop remains unchanged. The goal is to keep the strong
   mobile opening while reducing oversized secondary content.
   ======================================================= */
@media(max-width:680px){

  /* General rhythm after the opening hero */
  .section{padding:42px 0!important}
  .page-head{padding-bottom:28px!important}
  .page-head > .wrap{border-radius:22px!important}
  .page-head h1{font-size:clamp(38px,11vw,48px)!important;line-height:1!important}
  .page-head p{font-size:14px!important;line-height:1.55!important;margin-top:16px!important}

  /* HOME — project preview cards: show the whole aquarium, not a tall crop. */
  .home-work-v7{padding:42px 0!important}
  .home-work-grid{gap:18px!important}
  .home-work-grid .home-work-main,
  .home-work-grid .home-work-side{
    min-height:0!important;
    border-radius:18px!important;
  }
  .home-work-grid .home-work-main img,
  .home-work-grid .home-work-side img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    border-radius:16px!important;
  }
  .home-work-meta{padding:9px 2px 0!important}
  .home-work-meta strong{font-size:16px!important;line-height:1.15!important}
  .home-work-meta span,
  .home-work-meta > div + div{font-size:11px!important;line-height:1.35!important}

  /* HOME — compact service overview, still easy to tap. */
  .home-services-v7.home-services-editorial{padding:32px 0 30px!important}
  .home-services-editorial > .wrap{padding:20px 14px 16px!important;border-radius:18px!important}
  .home-services-editorial .home-section-intro{margin-bottom:14px!important}
  .home-services-editorial .home-section-intro h2{font-size:clamp(29px,8.5vw,35px)!important}
  .home-services-editorial .home-section-intro > p{font-size:12.5px!important}
  .home-services-editorial .home-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .home-services-editorial .home-service-card,
  .home-services-editorial .home-service-card:nth-child(n){
    min-height:132px!important;
    padding:13px 12px!important;
  }
  .home-services-editorial .home-service-card > span{
    min-width:30px!important;height:23px!important;margin-bottom:8px!important;font-size:9px!important;
  }
  .home-services-editorial .home-service-card h3{
    margin:0 0 7px!important;font-size:17px!important;line-height:1.12!important;padding-right:16px!important;
  }
  .home-services-editorial .home-service-card p{font-size:10.8px!important;line-height:1.4!important}
  .home-services-editorial .home-section-cta{margin-top:12px!important}

  /* GALLERY — main image = complete aquarium. Details remain small thumbnails. */
  .gallery-stack .project{margin-bottom:22px!important}
  .project{padding:9px!important;border-radius:18px!important}
  .project-media{border-radius:13px!important;background:transparent!important;overflow:hidden!important}
  .project-main-open{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    background:#f7f5ee!important;
  }
  .project-main-open img,
  .project-media .project-main-open img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    transform:none!important;
  }
  .project-info{padding-top:10px!important;gap:7px!important}
  .project-title{font-size:27px!important;line-height:1!important}
  .project-description{font-size:12.5px!important;line-height:1.48!important}
  .project-year{font-size:10px!important}
  .project-data{gap:5px!important;font-size:10.5px!important;line-height:1.4!important}
  .project-media .project-thumbs,
  #against .project-thumbs,#silent .project-thumbs,#diamonds .project-thumbs,#spring .project-thumbs,#closure .project-thumbs,
  #dragon .project-thumbs,#fireworks .project-thumbs,#step-aside .project-thumbs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;margin-top:6px!important;
  }
  .project-media .project-thumbs img,
  #against .project-thumbs img,#silent .project-thumbs img,#diamonds .project-thumbs img,#spring .project-thumbs img,#closure .project-thumbs img,
  #dragon .project-thumbs img,#fireworks .project-thumbs img,#step-aside .project-thumbs img{
    height:54px!important;object-fit:cover!important;border-radius:6px!important;
  }

  /* SERVICES — the vertical decorative photo and rows were another source of excess height. */
  .services-scope-v92{padding-bottom:48px!important}
  .services-grid-v92{gap:18px!important}
  .services-photo-v94{height:clamp(180px,48vw,250px)!important;border-radius:18px!important}
  .services-grid-v92 .service-list{gap:8px!important}
  .services-grid-v92 .service{
    padding:15px 14px!important;
    grid-template-columns:26px minmax(0,1fr)!important;
    gap:10px!important;
    border-radius:15px!important;
  }
  .services-grid-v92 .service-copy h3{font-size:17px!important;line-height:1.15!important}
  .services-grid-v92 .service-copy p{font-size:12px!important;line-height:1.45!important;margin-top:6px!important}
  .services-actions-v98 .services-action-card{min-height:132px!important;padding:16px 34% 16px 16px!important}

  /* CONTACT — same content, much less empty vertical space. */
  .contact-page .contact-layout{gap:14px!important;padding-bottom:28px!important}
  .contact-page .contact-direct-card{padding:15px!important;border-radius:17px!important}
  .contact-page .direct-contact-row{min-height:40px!important;padding:7px 0!important}
  .contact-page .form-card{padding:17px 14px!important;border-radius:17px!important}
  .contact-page .form-head{margin-bottom:16px!important;gap:8px!important}
  .contact-page .form-head h2{font-size:25px!important;margin:0 0 5px!important}
  .contact-page .form-head p{font-size:12.5px!important;line-height:1.4!important}
  .contact-page .form-grid{gap:9px!important}
  .contact-page .field{padding:10px 13px!important;border-radius:14px!important}
  .contact-page .field label{font-size:10.5px!important;line-height:1.3!important;margin-bottom:4px!important}
  .contact-page .field input,
  .contact-page .field select{
    min-height:38px!important;font-size:16px!important;padding:2px 0!important;
  }
  .contact-page .field textarea{
    min-height:86px!important;font-size:16px!important;padding:2px 0!important;
  }
  .contact-page .field-help{font-size:11.5px!important;line-height:1.4!important;margin-top:5px!important}
  .contact-details{margin:14px 0!important}
  .contact-details summary{padding:12px 0!important;font-size:14px!important}
  .contact-details[open]{padding-bottom:12px!important}
  .contact-page .form-footer{gap:12px!important;padding-top:12px!important}
  .contact-page .consent{font-size:11.5px!important;line-height:1.4!important}
  .contact-page .consent input{width:19px!important;height:19px!important}
  .contact-page .submit{min-height:46px!important;font-size:13px!important}
  .contact-next-step{font-size:11.5px!important;margin-top:10px!important}

  /* PARTNERS — avoid another set of very tall phone images/cards. */
  .partners-stack{gap:16px!important}
  .partner-story{border-radius:18px!important}
  .partner-story-yokuchi .partner-story-copy,
  .partner-story-akvarista .partner-story-copy,
  .partner-story-aquael .partner-story-copy{padding:22px 18px!important}
  .partner-story h2{font-size:32px!important;margin-bottom:13px!important}
  .partner-story p{font-size:13px!important;line-height:1.55!important;margin-bottom:11px!important}
  .partner-brand{min-height:0!important;margin:10px 0 16px!important}
  .partner-brand img{max-height:58px!important;max-width:250px!important}
  .partner-product-list{gap:6px!important;margin:16px 0 18px!important}
  .partner-product-list span{min-height:29px!important;padding:6px 9px!important;font-size:9px!important}
  .partner-story-yokuchi .partner-feature-media,
  .partner-story-akvarista .partner-feature-media,
  .partner-story-aquael .partner-feature-media{
    width:calc(100% - 36px)!important;
    max-width:330px!important;
    margin:0 auto 18px!important;
    aspect-ratio:4/3!important;
    border-radius:15px!important;
  }
  .partner-feature-media-aquael{aspect-ratio:4/3!important}
  .partner-feature-media-aquael img{object-fit:contain!important}

  /* BOOKING — keep cards useful but stop them becoming full-screen blocks. */
  .booking-v91-head{padding-top:124px!important}
  .booking-v91-banner{padding:24px 20px!important;border-radius:20px!important}
  .booking-v91-banner h1{font-size:38px!important;line-height:1!important}
  .booking-v91-banner p{font-size:13px!important;line-height:1.5!important}
  .booking-v91-copy{padding:20px 17px!important}
  .booking-v91-copy h2{font-size:29px!important;line-height:1.08!important}
  .booking-v91-copy p{font-size:13px!important;line-height:1.5!important}
  .booking-v91-photo{min-height:0!important}
  .booking-v91-photo img{min-height:0!important}
  .booking-v91-meta{margin-top:16px!important}
  .booking-v91-note{padding:18px!important}
}

@media(max-width:380px){
  .home-services-editorial .home-service-card,
  .home-services-editorial .home-service-card:nth-child(n){min-height:126px!important;padding:12px 10px!important}
  .home-services-editorial .home-service-card h3{font-size:16px!important}
  .home-services-editorial .home-service-card p{font-size:10.2px!important}
  .project-media .project-thumbs img{height:50px!important}
}


/* =======================================================
   V16.12 — MOBILE LAYOUT REFINEMENT
   1) Home project labels are below the aquarium image.
   2) Mobile footer/header density is reduced.
   3) Services mobile image is integrated as a compact landscape
      visual rather than a dominant first-loaded block.
   ======================================================= */
@media(max-width:680px){

  /* HOME — keep the aquarium itself completely unobstructed. */
  .home-work-grid .home-work-main,
  .home-work-grid .home-work-side{
    overflow:visible!important;
    background:transparent!important;
  }
  .home-work-grid .home-work-main img,
  .home-work-grid .home-work-side img{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    object-fit:contain!important;
    border-radius:16px!important;
  }
  .home-work-grid .home-work-main .home-work-meta,
  .home-work-grid .home-work-side .home-work-meta,
  .home-work-meta{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    transform:none!important;
    margin:0!important;
    padding:9px 5px 2px!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    color:var(--ink)!important;
  }
  .home-work-meta strong{color:var(--green)!important}
  .home-work-meta span,
  .home-work-meta > div + div{color:var(--muted)!important}

  /* HEADER — less top-heavy on a phone, flags stay usable. */
  .site-header .wrap{min-height:64px!important}
  .site-header .logo img{max-height:48px!important}
  .mobile-nav-toggle{width:40px!important;height:40px!important}
  .mobile-language-row{padding:6px 10px 9px!important;gap:5px!important}
  .mobile-language-row a{width:37px!important;height:37px!important}

  /* FOOTER — current logo dominates the whole phone screen. */
  .site-footer{padding:30px 0 22px!important}
  .site-footer .footer-grid{gap:20px!important}
  .site-footer .footer-brand img,
  .site-footer .footer-logo img,
  .site-footer img[alt*="Nature Aquarium"]{
    width:auto!important;
    max-width:150px!important;
    max-height:132px!important;
  }
  .site-footer .footer-contact,
  .site-footer .footer-nav{font-size:11px!important;line-height:1.55!important}
  .site-footer .footer-nav{gap:5px!important}
  .site-footer .footer-bottom{margin-top:18px!important;padding-top:14px!important;font-size:9.5px!important}

  /* SERVICES — on mobile, text starts first and photo becomes a compact
     supporting strip, avoiding the awkward large image on initial load. */
  .services-grid-v92{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
  }
  .services-grid-v92 .service-list{order:1!important}
  .services-grid-v92 .services-photo-v94{
    order:2!important;
    width:100%!important;
    height:150px!important;
    min-height:0!important;
    margin:2px 0 0!important;
    border-radius:16px!important;
    overflow:hidden!important;
  }
  .services-grid-v92 .services-photo-v94 img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 52%!important;
  }
  .services-grid-v92 .service{
    padding:13px 13px!important;
  }

  /* Service page top section also gets a tighter transition into content. */
  .services-scope-v92{padding-top:28px!important}
}

@media(max-width:420px){
  .services-grid-v92 .services-photo-v94{height:132px!important}
  .site-footer .footer-brand img,
  .site-footer .footer-logo img,
  .site-footer img[alt*="Nature Aquarium"]{max-width:138px!important;max-height:120px!important}
}


/* =======================================================
   V16.13 — BRAND HEADER + COMPACT MOBILE FOOTER
   ======================================================= */

/* Brand name is readable independently of the small logo. */
.site-header .wrap{
  display:flex;
  align-items:center;
}
.header-brand-text{
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin-left:10px;
  color:#fff;
  line-height:1;
  white-space:nowrap;
}
.header-brand-name{
  font-size:15px;
  font-weight:650;
  letter-spacing:.015em;
}
.header-brand-sub{
  margin-top:4px;
  font-size:8px;
  font-weight:650;
  letter-spacing:.18em;
  text-transform:uppercase;
  opacity:.66;
}

/* Keep desktop navigation visually centred despite the wider brand block. */
@media(min-width:901px){
  .site-header .header-brand-text{margin-right:8px}
  .site-header nav{margin-left:auto}
}

/* Phone: compact brand and genuinely compact footer. */
@media(max-width:680px){
  .site-header .wrap{min-height:62px!important;padding-top:5px!important;padding-bottom:5px!important}
  .site-header .logo img{max-height:45px!important}
  .header-brand-text{margin-left:8px!important}
  .header-brand-name{font-size:14px!important}
  .header-brand-sub{font-size:7px!important;margin-top:3px!important;letter-spacing:.15em!important}
  .mobile-nav-toggle{margin-left:auto!important}

  .site-footer{
    padding:22px 0 16px!important;
  }
  .site-footer .footer-grid{
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr)!important;
    column-gap:16px!important;
    row-gap:13px!important;
    align-items:start!important;
  }
  .site-footer .footer-brand{
    grid-column:1!important;
    grid-row:1 / span 2!important;
    margin:0!important;
  }
  .site-footer .footer-brand img,
  .site-footer .footer-logo img,
  .site-footer img[alt*="Nature Aquarium"]{
    display:block!important;
    width:88px!important;
    height:auto!important;
    max-width:88px!important;
    max-height:none!important;
    margin:0!important;
  }
  .site-footer .footer-contact{
    grid-column:2!important;
    margin:0!important;
    font-size:10.5px!important;
    line-height:1.55!important;
  }
  .site-footer .footer-contact p,
  .site-footer .footer-contact a{margin:0 0 3px!important}
  .site-footer .footer-nav{
    grid-column:2!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:12px!important;
    row-gap:4px!important;
    margin:0!important;
    font-size:9.5px!important;
    line-height:1.35!important;
  }
  .site-footer .footer-bottom{
    grid-column:1 / -1!important;
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:space-between!important;
    gap:6px 12px!important;
    margin-top:4px!important;
    padding-top:11px!important;
    font-size:8.5px!important;
    line-height:1.35!important;
  }
}

@media(max-width:390px){
  .header-brand-name{font-size:13px!important}
  .site-footer .footer-grid{grid-template-columns:78px minmax(0,1fr)!important;column-gap:13px!important}
  .site-footer .footer-brand img,
  .site-footer .footer-logo img,
  .site-footer img[alt*="Nature Aquarium"]{width:74px!important;max-width:74px!important}
}


/* =======================================================
   V16.14 — MOBILE HEADER/FULL FOOTER CORRECTION
   ======================================================= */
@media(max-width:680px){
  .site-header{position:relative!important}
  .site-header .wrap{position:relative!important}

  /* Brand text belongs inside the green header bar. */
  .header-brand-text{
    position:absolute!important;
    left:76px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    z-index:20!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    color:#fff!important;
    pointer-events:none!important;
  }
  .header-brand-name{
    display:block!important;
    font-size:13px!important;
    line-height:1.05!important;
    font-weight:650!important;
    letter-spacing:.01em!important;
    color:#fff!important;
  }
  .header-brand-sub{
    display:block!important;
    margin-top:3px!important;
    font-size:6.5px!important;
    line-height:1!important;
    font-weight:650!important;
    letter-spacing:.15em!important;
    text-transform:uppercase!important;
    opacity:.62!important;
    color:#fff!important;
  }

  /* Footer: override the old desktop/mobile rules decisively. */
  .site-footer{
    padding:16px 12px 12px!important;
  }
  .site-footer .container,
  .site-footer .wrap{
    padding-top:0!important;
    padding-bottom:0!important;
  }
  .site-footer .footer-grid{
    display:grid!important;
    grid-template-columns:68px minmax(0,1fr)!important;
    gap:8px 14px!important;
    align-items:start!important;
  }
  .site-footer .footer-brand{
    grid-column:1!important;
    grid-row:1!important;
    width:68px!important;
    margin:0!important;
    padding:0!important;
  }
  .site-footer .footer-brand img,
  .site-footer .footer-logo img,
  .site-footer img[alt*="Nature Aquarium"]{
    width:68px!important;
    max-width:68px!important;
    height:auto!important;
    margin:0!important;
  }
  .site-footer .footer-contact{
    grid-column:2!important;
    grid-row:1!important;
    margin:0!important;
    padding:0!important;
    font-size:9.5px!important;
    line-height:1.45!important;
  }
  .site-footer .footer-nav{
    grid-column:1 / -1!important;
    grid-row:2!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:3px 10px!important;
    margin:3px 0 0!important;
    padding:8px 0 0!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
    font-size:8.5px!important;
    line-height:1.3!important;
  }
  .site-footer .footer-bottom{
    grid-column:1 / -1!important;
    grid-row:3!important;
    display:flex!important;
    flex-direction:row!important;
    justify-content:space-between!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:4px 10px!important;
    margin:4px 0 0!important;
    padding:8px 0 0!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
    font-size:7.5px!important;
    line-height:1.3!important;
  }
}


/* =======================================================
   V16.15 — BRAND ALIGNMENT + COMPACT MOBILE TRANSITIONS
   ======================================================= */

/* Desktop/web brand hierarchy: main name clearly larger, Aquascaping centred below it. */
.header-brand-text{
  align-items:center!important;
  text-align:center!important;
}
.header-brand-name{
  font-size:18px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
}
.header-brand-sub{
  width:100%!important;
  margin-top:4px!important;
  font-size:8px!important;
  line-height:1!important;
  text-align:center!important;
  letter-spacing:.16em!important;
}

/* Mobile: keep the good size ratio, but position the whole wordmark correctly
   between the logo and menu, vertically centred in the green header. */
@media(max-width:680px){
  .header-brand-text{
    left:82px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:auto!important;
    max-width:190px!important;
    align-items:center!important;
    text-align:center!important;
  }
  .header-brand-name{
    font-size:13px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .header-brand-sub{
    font-size:6.5px!important;
    margin-top:3px!important;
    text-align:center!important;
  }

  /* Compact section transitions on the home page.
     Reduce the large cream gaps while retaining a clear visual break. */
  .home-introduction{
    padding-bottom:24px!important;
  }
  .home-work-v7,
  .home-work-editorial{
    padding-top:28px!important;
    padding-bottom:24px!important;
  }
  .home-work-v7 .home-section-intro,
  .home-work-editorial .home-section-intro{
    margin-bottom:16px!important;
  }
  .home-work-v7 .home-section-cta,
  .home-work-editorial .home-section-cta{
    margin-top:10px!important;
    padding-bottom:0!important;
  }
  .home-services-v7,
  .home-services-editorial{
    padding-top:26px!important;
    padding-bottom:28px!important;
  }
  .home-proof-v7{
    padding-top:28px!important;
    padding-bottom:28px!important;
  }
  .home-awards-strip{
    padding-top:26px!important;
    padding-bottom:26px!important;
  }

  /* Generic mobile section rhythm for similar oversized transitions elsewhere. */
  main > .section{
    padding-top:30px!important;
    padding-bottom:30px!important;
  }
}

@media(max-width:420px){
  .header-brand-text{
    left:78px!important;
    max-width:180px!important;
  }
  .header-brand-name{font-size:12.5px!important}
}


/* =======================================================
   V16.16 — REAL COMPACT MOBILE FOOTER
   The site uses .footer / .footer-main, not .site-footer.
   ======================================================= */
@media(max-width:680px){
  .footer{
    padding:18px 0 14px!important;
  }
  .footer .wrap{
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .footer-main{
    display:grid!important;
    grid-template-columns:88px minmax(0,1fr)!important;
    grid-template-areas:
      "logo contact"
      "links links"!important;
    column-gap:15px!important;
    row-gap:12px!important;
    align-items:start!important;
  }
  .footer-logo,
  .footer-logo.v80-footer-logo{
    grid-area:logo!important;
    margin:0!important;
    padding:0!important;
    align-self:start!important;
  }
  .footer-logo img,
  .footer-logo.v80-footer-logo img{
    display:block!important;
    width:88px!important;
    max-width:88px!important;
    height:auto!important;
    margin:0!important;
  }
  .footer-contact-v74{
    grid-area:contact!important;
    display:flex!important;
    flex-direction:column!important;
    gap:3px!important;
    margin:1px 0 0!important;
    padding:0!important;
    font-size:10px!important;
    line-height:1.35!important;
  }
  .footer-contact-v74 a{
    margin:0!important;
  }
  .footer-links,
  .footer-links-v76{
    grid-area:links!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px 10px!important;
    margin:0!important;
    padding:10px 0 0!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
    font-size:8.5px!important;
    line-height:1.25!important;
  }
  .footer-bottom{
    display:flex!important;
    flex-direction:row!important;
    justify-content:space-between!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:5px 10px!important;
    margin-top:11px!important;
    padding-top:10px!important;
    font-size:7.5px!important;
    line-height:1.3!important;
  }
}

@media(max-width:390px){
  .footer-main{
    grid-template-columns:78px minmax(0,1fr)!important;
    column-gap:12px!important;
  }
  .footer-logo img,
  .footer-logo.v80-footer-logo img{
    width:78px!important;
    max-width:78px!important;
  }
  .footer-contact-v74{font-size:9.5px!important}
  .footer-links,
  .footer-links-v76{font-size:8px!important}
}


/* =======================================================
   V16.17 — MOBILE FIRST VIEW / ABOVE-THE-FOLD
   Desktop remains unchanged.
   ======================================================= */
@media(max-width:680px){

  /* Header: brand visually centred in the top row and kept clear
     of the language row below. */
  .site-header .wrap{
    min-height:58px!important;
    padding-top:4px!important;
    padding-bottom:4px!important;
  }
  .site-header .logo img{max-height:44px!important}
  .header-brand-text{
    left:50%!important;
    top:27px!important;
    transform:translate(-50%,-50%)!important;
    max-width:210px!important;
    margin:0!important;
  }
  .header-brand-name{
    font-size:12.5px!important;
    white-space:nowrap!important;
  }
  .header-brand-sub{
    font-size:6.2px!important;
    margin-top:3px!important;
    text-align:center!important;
  }
  .mobile-language-row{
    min-height:38px!important;
    padding:2px 10px 5px!important;
    gap:4px!important;
  }
  .mobile-language-row a{
    width:34px!important;
    height:34px!important;
  }

  /* Home hero: preserve the premium desktop composition but use
     less vertical space on a phone. */
  .home-hero-v7,
  .home-hero-editorial{
    min-height:0!important;
    height:178px!important;
    margin-top:14px!important;
    margin-bottom:12px!important;
    border-radius:20px!important;
  }
  .home-hero-v7 .hero-content,
  .home-hero-editorial .hero-content{
    padding:22px 20px!important;
  }
  .home-hero-v7 h1,
  .home-hero-editorial h1{
    font-size:36px!important;
    line-height:1.02!important;
    letter-spacing:-.04em!important;
    max-width:320px!important;
  }

  /* Intro copy becomes a compact lead on mobile; full desktop copy
     is still present and untouched. */
  .home-introduction{
    padding-top:0!important;
    padding-bottom:16px!important;
  }
  .home-introduction .home-intro-copy,
  .home-introduction > p,
  .home-introduction .lead{
    font-size:14px!important;
    line-height:1.55!important;
    margin-bottom:12px!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:3!important;
    overflow:hidden!important;
  }

  /* Bring the primary action into the first screen sooner. */
  .home-introduction .eyebrow,
  .home-introduction .section-kicker{
    margin-top:8px!important;
    margin-bottom:8px!important;
  }
  .home-quick-actions,
  .home-cta-stack{
    gap:7px!important;
  }
  .home-quick-actions > *,
  .home-cta-stack > *{
    min-height:76px!important;
  }
}

@media(max-width:420px){
  .home-hero-v7,
  .home-hero-editorial{height:170px!important}
  .home-hero-v7 h1,
  .home-hero-editorial h1{font-size:34px!important}
}

/* =======================================================
   V16.18 — COMPACT MOBILE SECTION FLOW
   Reduce empty vertical transitions on phones while keeping
   desktop spacing and the compact service panel unchanged.
   ======================================================= */
@media(max-width:680px){
  /* Home: one continuous mobile story instead of large cream pauses. */
  .home-introduction{
    padding-bottom:12px!important;
  }
  .home-introduction-grid{
    gap:14px!important;
  }
  .home-intro-photo{
    margin-bottom:0!important;
  }

  .home-work-v7,
  .home-work-editorial{
    padding-top:18px!important;
    padding-bottom:16px!important;
  }
  .home-work-v7 .home-section-intro,
  .home-work-editorial .home-section-intro{
    gap:10px!important;
    margin-bottom:12px!important;
  }
  .home-work-v7 .home-section-intro h2,
  .home-work-editorial .home-section-intro h2{
    margin-bottom:0!important;
    font-size:clamp(34px,9.4vw,40px)!important;
    line-height:1.02!important;
  }
  .home-work-v7 .home-section-intro > p,
  .home-work-editorial .home-section-intro > p{
    margin:0!important;
    font-size:13px!important;
    line-height:1.5!important;
  }
  .home-work-grid{gap:12px!important}
  .home-work-v7 .home-section-cta,
  .home-work-editorial .home-section-cta{
    margin-top:8px!important;
  }

  /* The service panel already has the desired density; only tighten
     the transition into and out of it. */
  .home-services-v7,
  .home-services-editorial,
  .home-services-v7.home-services-editorial{
    padding-top:16px!important;
    padding-bottom:18px!important;
  }
  .home-services-editorial > .wrap{
    margin-top:0!important;
    margin-bottom:0!important;
  }

  .home-proof-v7{
    padding-top:20px!important;
    padding-bottom:22px!important;
  }
  .home-awards-strip{
    padding-top:20px!important;
    padding-bottom:20px!important;
  }

  /* Other ordinary sections should not create a long blank scroll
     between neighbouring blocks on a phone. */
  main > .section{
    padding-top:24px!important;
    padding-bottom:24px!important;
  }
}

@media(max-width:420px){
  .home-work-v7 .home-section-intro h2,
  .home-work-editorial .home-section-intro h2{
    font-size:34px!important;
  }
}

/* =======================================================
   V16.19 — MOBILE HOMEPAGE: AQUARIUM FIRST
   On phones the opening flow is brand -> hero -> short intro -> work.
   The three commercial CTA cards are removed from the first screen;
   the full services block remains later on the homepage.
   ======================================================= */
@media(max-width:680px){
  .home-banner>.wrap{
    min-height:178px!important;
    padding:20px 22px!important;
  }
  .home-banner h1{
    margin:10px 0 0!important;
    font-size:clamp(32px,9.2vw,38px)!important;
    line-height:1.04!important;
  }
  .home-introduction{
    padding-top:0!important;
    padding-bottom:10px!important;
  }
  .home-introduction-text{
    margin:0 0 12px!important;
    font-size:14px!important;
    line-height:1.5!important;
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .home-introduction-grid{
    display:block!important;
  }
  .home-introduction .home-action-selector{
    display:none!important;
  }
  .home-intro-photo{
    margin:0!important;
  }
  .home-intro-photo>img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    border-radius:18px!important;
  }
  .home-intro-caption{
    margin-top:7px!important;
    font-size:12px!important;
    line-height:1.35!important;
  }
  .home-intro-caption strong{font-size:14px!important}
  .home-work-v7,.home-work-editorial{
    padding-top:14px!important;
  }
}

/* =======================================================
   V16.20 — MOBILE HOME: SMALLER HERO + ACTIONS AFTER TANK
   Keep desktop untouched. On phones: compact hero, short lead,
   aquarium image, then the three useful action links.
   ======================================================= */
@media(max-width:680px){
  .home-banner{padding-top:10px!important;padding-bottom:0!important}
  .home-banner>.wrap{
    min-height:132px!important;
    height:132px!important;
    padding:14px 18px!important;
    border-radius:18px!important;
  }
  .home-banner h1{
    margin:0!important;
    font-size:clamp(28px,8vw,34px)!important;
    line-height:1.02!important;
    max-width:290px!important;
  }
  .home-introduction-text{
    margin:0 0 10px!important;
    -webkit-line-clamp:3!important;
  }
  .home-introduction-grid{display:flex!important;flex-direction:column!important;gap:10px!important}
  .home-intro-photo{order:1!important}
  .home-introduction .home-action-selector{
    display:flex!important;
    flex-direction:column!important;
    order:2!important;
    gap:7px!important;
    margin-top:2px!important;
  }
  .home-action-selector-title{margin:0 0 2px!important;font-size:12px!important}
  .home-introduction .home-action-row{
    min-height:70px!important;
    padding:10px 14px!important;
    border-radius:16px!important;
  }
  .home-introduction .home-action-main strong{font-size:18px!important;line-height:1.08!important}
  .home-introduction .home-action-main span{font-size:11px!important}
  .home-introduction .home-action-main small{font-size:12px!important;margin-top:3px!important}
  .home-work-v7,.home-work-editorial{padding-top:12px!important}
}
@media(max-width:420px){
  .home-banner>.wrap{min-height:124px!important;height:124px!important}
  .home-banner h1{font-size:30px!important}
}

/* =======================================================
   V16.21 — GLOBAL COMPACT MOBILE INNER-PAGE HERO
   All inner pages now use the same compact first banner rhythm.
   Desktop/tablet layouts remain unchanged.
   ======================================================= */
@media(max-width:680px){
  .page-head,
  .booking-v91-head{
    padding-top:124px!important;
    padding-bottom:10px!important;
  }

  .page-head > .wrap,
  .booking-v91-banner{
    height:auto!important;
    min-height:170px!important;
    padding:18px 20px!important;
    border-radius:20px!important;
    justify-content:center!important;
  }

  .page-head h1,
  .booking-v91-banner h1{
    margin:5px 0 9px!important;
    max-width:330px!important;
    font-size:clamp(29px,8.5vw,34px)!important;
    line-height:1.01!important;
    letter-spacing:-.04em!important;
  }

  .page-head p,
  .booking-v91-banner p{
    max-width:330px!important;
    margin:0!important;
    font-size:11.5px!important;
    line-height:1.45!important;
  }

  .page-head .kicker,
  .booking-v91-banner .kicker{
    margin-bottom:3px!important;
    padding:5px 9px!important;
    font-size:8px!important;
  }

  .page-head > .wrap::before,
  .booking-v91-banner::after{
    width:210px!important;
    height:210px!important;
    right:-95px!important;
    top:-105px!important;
  }

  .page-head + .section,
  .page-head + section.section,
  .page-head + .contact-layout{
    padding-top:16px!important;
  }

  /* Services: start its visual/content immediately after the compact hero. */
  .services-scope-v92{padding-top:14px!important}
}

@media(max-width:420px){
  .page-head > .wrap,
  .booking-v91-banner{
    min-height:162px!important;
    padding:16px 18px!important;
  }
  .page-head h1,
  .booking-v91-banner h1{
    font-size:30px!important;
  }
}


/* V16.22: compact mobile personal proof section */
@media(max-width:600px){
  .home-proof-v7{padding:28px 0 32px!important}
  .home-proof-grid{gap:18px!important}
  .home-proof-copy h2{font-size:30px!important;line-height:1.06!important;margin:10px 0 12px!important}
  .home-proof-copy p{font-size:14px!important;line-height:1.58!important}
  .home-proof-stats{gap:7px!important}
  .home-proof-stats .proof-stat{grid-template-columns:94px minmax(0,1fr)!important;min-height:68px!important;padding:10px 14px!important;gap:12px!important;border-radius:14px!important}
  .home-proof-stats .proof-stat strong{font-size:36px!important}
  .home-proof-stats .proof-stat .proof-place{font-size:11px!important}
  .home-proof-stats .proof-stat>span{font-size:12px!important;line-height:1.35!important}
}

/* V16.23 — mobile home actions full width + services uses Against the Flow */
@media(max-width:680px){
  .home-introduction .home-action-selector{
    width:100%!important;
    max-width:none!important;
    align-self:stretch!important;
    box-sizing:border-box!important;
  }
  .home-introduction .home-action-row{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
  }
  .services-grid-v92 .services-photo-v94 img{
    content:url("assets/against-original.jpg")!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
}

/* =======================================================
   V16.24 — MOBILE HERO AS COMPACT VISUAL STRIP
   Mobile only: CTA-height hero, title only in banner,
   descriptive copy directly below. Desktop unchanged.
   ======================================================= */
.mobile-hero-lead{display:none}

@media(max-width:680px){
  .page-head > .wrap,
  .booking-v91-banner,
  .home-banner > .wrap{
    height:96px!important;
    min-height:96px!important;
    padding:12px 18px!important;
    border-radius:18px!important;
    justify-content:center!important;
    background:
      linear-gradient(90deg,
        rgba(18,60,52,1) 0%,
        rgba(18,60,52,.99) 42%,
        rgba(18,60,52,.90) 57%,
        rgba(18,60,52,.62) 72%,
        rgba(18,60,52,.24) 88%,
        rgba(18,60,52,.06) 100%),
      url("assets/inner-banner-photo.webp") 78% center / cover no-repeat!important;
  }

  .page-head h1,
  .booking-v91-banner h1,
  .home-banner h1{
    margin:0!important;
    max-width:285px!important;
    font-size:clamp(25px,7.2vw,30px)!important;
    line-height:1.02!important;
    letter-spacing:-.035em!important;
  }

  /* Copy is below the visual strip on mobile. */
  .page-head > .wrap > p,
  .booking-v91-banner > p{display:none!important}
  .mobile-hero-lead{
    display:block!important;
    padding-top:8px!important;
    padding-bottom:0!important;
  }
  .mobile-hero-lead p{
    margin:0!important;
    color:var(--muted)!important;
    font-size:13px!important;
    line-height:1.5!important;
  }

  /* Home already has its lead directly below the banner. */
  .home-banner{padding-bottom:0!important}
  .home-introduction{padding-top:8px!important}
  .home-introduction-text{font-size:13px!important;line-height:1.5!important}

  /* Inner content follows the new lead without a large gap. */
  .mobile-hero-lead + .section,
  .mobile-hero-lead + section,
  .mobile-hero-lead + .contact-layout{padding-top:14px!important}
}

@media(max-width:420px){
  .page-head > .wrap,
  .booking-v91-banner,
  .home-banner > .wrap{
    height:92px!important;
    min-height:92px!important;
    padding:11px 16px!important;
  }
  .page-head h1,
  .booking-v91-banner h1,
  .home-banner h1{font-size:27px!important}
}

/* V16.25 — iPad/tablet refinement only. Desktop and phone stay unchanged. */
@media (min-width:681px) and (max-width:1040px){
  /* Keep the full navigation on iPad instead of switching to a stray hamburger. */
  .header .nav{
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
  }
  .header .menu{display:none!important}
  .header .navlinks{
    display:flex!important;
    position:static!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:10px!important;
    margin-left:auto!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    white-space:nowrap!important;
  }
  .header .navlinks a{font-size:9px!important;letter-spacing:.08em!important}
  .header .lang-switch{margin-left:6px!important;gap:3px!important}
  .header .flag-link{width:25px!important;height:25px!important}
  .header .flag-link span{display:none!important}
  .header-brand-text{margin-left:2px!important;margin-right:2px!important}
  .header-brand-name{font-size:12px!important}
  .header-brand-sub{font-size:6px!important}

  /* A slimmer first banner on tablet; phone rules below 680 px are untouched. */
  .home-banner > .wrap{
    min-height:112px!important;
    height:112px!important;
    padding-top:16px!important;
    padding-bottom:16px!important;
    border-radius:20px!important;
  }
  .home-banner h1{
    font-size:clamp(31px,4vw,40px)!important;
    line-height:1.02!important;
  }
}

/* V16.26 — tablet opening banner consistency across every public page.
   Apply the same slim iPad treatment to Home, Portfolio, Services,
   Partners, Contact and Booking in every language. Phone and desktop unchanged. */
@media (min-width:681px) and (max-width:1040px){
  .home-banner > .wrap,
  .page-head > .wrap,
  .booking-v91-banner{
    min-height:112px!important;
    height:112px!important;
    padding:16px 22px!important;
    border-radius:20px!important;
    box-sizing:border-box!important;
  }
  .home-banner h1,
  .page-head h1,
  .booking-v91-banner h1{
    font-size:clamp(31px,4vw,40px)!important;
    line-height:1.02!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }
}

/* V16.27 — mobile opening banners use the same image reveal as homepage CTA cards.
   Image begins on the right half; the forest overlay fades across it gradually.
   Mobile only. Tablet/desktop untouched. */
@media(max-width:680px){
  .page-head > .wrap,
  .booking-v91-banner,
  .home-banner > .wrap{
    background:
      linear-gradient(90deg,
        #12493f 0%,
        #12493f 44%,
        rgba(18,73,63,.94) 54%,
        rgba(18,73,63,.52) 72%,
        rgba(18,73,63,.12) 100%),
      url("assets/inner-banner-photo.webp") right center / 52% 100% no-repeat,
      #12493f!important;
  }
}

/* V16.28 — mobile hero image reveal unified with homepage CTA cards.
   Uses a real image layer plus the exact CTA-style forest gradient, avoiding a hard seam. */
@media(max-width:680px){
  .page-head > .wrap,
  .booking-v91-banner,
  .home-banner > .wrap{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    background:#12493f!important;
  }
  .page-head > .wrap::before,
  .booking-v91-banner::before,
  .home-banner > .wrap::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    z-index:-2!important;
    inset:0 0 0 44%!important;
    width:auto!important;
    height:auto!important;
    border-radius:0!important;
    background-image:url("assets/inner-banner-photo.webp")!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
    background-position:64% center!important;
    opacity:1!important;
    pointer-events:none!important;
  }
  .page-head > .wrap::after,
  .booking-v91-banner::after,
  .home-banner > .wrap::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    z-index:-1!important;
    inset:0!important;
    width:auto!important;
    height:auto!important;
    border-radius:0!important;
    background:linear-gradient(90deg,#12493f 0%,#12493f 50%,rgba(18,73,63,.72) 73%,rgba(18,73,63,.18) 100%)!important;
    pointer-events:none!important;
  }
  .page-head h1,
  .booking-v91-banner h1,
  .home-banner h1{
    position:relative!important;
    z-index:1!important;
  }
}

/* V16.29 — mobile typography audit: one opening-banner type system on every page. */
@media(max-width:680px){
  .page-head h1,
  .contact-page .page-head h1,
  .booking-v91-banner h1,
  .home-banner h1{
    margin:0!important;
    max-width:285px!important;
    font-family:inherit!important;
    font-size:27px!important;
    font-weight:400!important;
    line-height:1.02!important;
    letter-spacing:-.035em!important;
  }
  .mobile-hero-lead p,
  .home-introduction-text{
    font-family:inherit!important;
    font-size:13px!important;
    font-weight:400!important;
    line-height:1.5!important;
    letter-spacing:normal!important;
  }
  .contact-page .page-head>.wrap{
    height:96px!important;
    min-height:96px!important;
    padding:12px 18px!important;
  }
}
@media(max-width:420px){
  .page-head h1,
  .contact-page .page-head h1,
  .booking-v91-banner h1,
  .home-banner h1{font-size:27px!important}
  .contact-page .page-head>.wrap{height:92px!important;min-height:92px!important;padding:11px 16px!important}
}

/* V16.30 — mobile contact form: maximise usable writing width */
@media (max-width:680px){
  .contact-page .contact-layout{padding-left:12px!important;padding-right:12px!important}
  .contact-page .form-card{padding:16px 12px!important}
  .contact-page .form-grid{gap:10px!important}
  .contact-page .field{padding:9px 10px!important}
  .contact-page .field input,
  .contact-page .field select,
  .contact-page .field textarea{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
  .contact-page .field textarea{
    min-height:132px!important;
    padding:5px 0!important;
    line-height:1.45!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    white-space:pre-wrap!important;
  }
  .contact-page .field.full:has(textarea){padding:9px 10px 10px!important}
  .contact-page .field-help{margin-top:6px!important}
  .contact-page .contact-details{margin:12px 0!important}
}

/* v16.31 — mobile awards typography: align oversized gallery award heading with mobile hierarchy */
@media (max-width:680px){
  .awards-intro h2{
    font-size:31px !important;
    line-height:1.02 !important;
    letter-spacing:-.035em !important;
    font-weight:520;
  }
  .awards-intro h2 em{font-size:1em;line-height:1.02}
  .awards-intro{gap:14px !important}
}

/* V16.32 — mobile contact form density and entered-text scale */
@media (max-width:680px){
  .contact-page .form-grid{gap:9px!important}
  .contact-page .field{
    min-height:0!important;
    padding:8px 10px!important;
    border-radius:14px!important;
  }
  .contact-page .field:not(.full){min-height:62px!important}
  .contact-page .field label{font-size:12px!important;line-height:1.25!important}
  .contact-page .field input,
  .contact-page .field select,
  .contact-page .field textarea{
    font-size:15px!important;
    line-height:1.4!important;
  }
  .contact-page .field input,
  .contact-page .field select{min-height:34px!important;padding:2px 0!important}
  .contact-page .field.full:has(textarea){padding:8px 10px 9px!important}
  .contact-page .field textarea{min-height:112px!important;padding:4px 0!important}
  .contact-page .field-help{font-size:11.5px!important;line-height:1.35!important;margin-top:4px!important}
}

/* V16.33 — mobile + tablet contact: compact the three short fields */
@media (max-width:1040px){
  .contact-page .form-grid > .field:not(:has(textarea)){
    min-height:52px!important;
    padding:6px 10px!important;
    border-radius:14px!important;
  }
  .contact-page .form-grid > .field:not(:has(textarea)) label{
    font-size:11.5px!important;
    line-height:1.15!important;
    margin-bottom:1px!important;
  }
  .contact-page .form-grid > .field:not(:has(textarea)) input,
  .contact-page .form-grid > .field:not(:has(textarea)) select{
    min-height:26px!important;
    height:26px!important;
    padding:0!important;
    font-size:14px!important;
    line-height:1.25!important;
  }
}

/* v16.34: homepage project link keeps the existing visual treatment. */
.home-intro-project-link{display:block;color:inherit;text-decoration:none;cursor:pointer}
.home-intro-project-link img{display:block;width:100%;height:auto;border-radius:24px}
.home-intro-title-link{color:inherit;text-decoration:none}
@media(max-width:600px){.home-intro-project-link img{border-radius:20px}}

/* V16.36 — HOME INTRO: one complete compact copy on phones, full copy elsewhere */
.home-introduction-text-mobile{display:none}
@media(max-width:680px){
  .home-introduction-text-desktop{display:none!important}
  .home-introduction-text-mobile{
    display:block!important;
    -webkit-line-clamp:unset!important;
    -webkit-box-orient:initial!important;
    overflow:visible!important;
    margin:0 0 10px!important;
  }
}

/* V16.37 — phone-only competition result cards: denser vertical rhythm */
@media (max-width:470px){
  .award-results-grid{gap:10px!important;margin-bottom:40px!important}
  .award-result-card{
    min-height:0!important;
    padding:14px 16px 15px!important;
    border-radius:17px!important;
  }
  .award-result-year{margin-bottom:12px!important}
  .award-result-card h3{margin:0 0 8px!important}
  .award-result-card p{line-height:1.55!important}
}


/* V16.38 — HOME INTRO: single paragraph; extra desktop copy hidden on phones.
   This removes the duplicate mobile/desktop paragraphs entirely. */
.home-introduction-extra{display:inline}
@media(max-width:680px){
  .home-introduction-extra{display:none!important}
  .home-introduction-text{
    display:block!important;
    -webkit-line-clamp:unset!important;
    -webkit-box-orient:initial!important;
    overflow:visible!important;
    margin:0 0 10px!important;
  }
}

/* V16.39 — TABLET HERO: title in banner, descriptive copy below.
   Tablet/iPad only (681–1040px). Phone and desktop remain unchanged. */
@media (min-width:681px) and (max-width:1040px){
  .page-head > .wrap > p,
  .booking-v91-banner > p{
    display:none!important;
  }

  .mobile-hero-lead{
    display:block!important;
    padding-top:9px!important;
    padding-bottom:0!important;
  }
  .mobile-hero-lead p{
    margin:0!important;
    color:var(--muted)!important;
    font-size:13px!important;
    line-height:1.5!important;
  }

  .mobile-hero-lead + .section,
  .mobile-hero-lead + section,
  .mobile-hero-lead + .contact-layout{
    padding-top:18px!important;
  }
}

/* V16.40 — SMALL TABLET SERVICES: use the same compact supporting image treatment as phone.
   681–880px only. Larger tablets keep the two-column services layout. */
@media (min-width:681px) and (max-width:880px){
  .services-grid-v92{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
  }
  .services-grid-v92 .service-list{order:1!important}
  .services-grid-v92 .services-visual-v92{
    order:2!important;
    position:static!important;
    width:100%!important;
  }
  .services-grid-v92 .services-photo-v94{
    width:100%!important;
    height:170px!important;
    min-height:0!important;
    margin:2px 0 0!important;
    border-radius:18px!important;
    overflow:hidden!important;
  }
  .services-grid-v92 .services-photo-v94 img{
    content:url("assets/against-original.jpg")!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
}

/* V16.41 — SMALL TABLET SERVICES IMAGE POSITION
   Keep the compact Against the Flow image directly below the intro,
   before the service cards, matching the phone layout. */
@media (min-width:681px) and (max-width:880px){
  .services-grid-v92 .services-visual-v92{order:0!important}
  .services-grid-v92 .service-list{order:1!important}
}


/* V16.42 — reliable small-tablet services image placement.
   Dedicated compact image sits between intro copy and service cards. */
.small-tablet-services-photo{display:none}
@media (min-width:681px) and (max-width:880px){
  .small-tablet-services-photo{
    display:block!important;
    padding-top:14px!important;
    padding-bottom:0!important;
  }
  .small-tablet-services-photo img{
    display:block!important;
    width:100%!important;
    height:170px!important;
    object-fit:cover!important;
    object-position:center center!important;
    border-radius:18px!important;
  }
  .services-grid-v92 .services-visual-v92{display:none!important}
  .small-tablet-services-photo + .services-scope-v92{padding-top:16px!important}
}

/* V16.45 — homepage portfolio metadata safe inset across viewports.
   Keep labels clear of the rounded image/card corners on desktop, tablet and phone. */
.home-work-grid .home-work-meta{
  box-sizing:border-box!important;
  padding-left:10px!important;
  padding-right:10px!important;
}
@media (min-width:681px) and (max-width:1040px){
  .home-work-grid .home-work-meta{
    padding-left:9px!important;
    padding-right:9px!important;
  }
}
@media (max-width:680px){
  .home-work-grid .home-work-meta{
    padding-left:8px!important;
    padding-right:8px!important;
  }
}


/* V16.52 — Diamonds in the Sky: five standardized 2400 × 2000 detail crops from the 7536 × 2688 PSD source. */
@media(min-width:901px){#diamonds .project-thumbs{grid-template-columns:repeat(5,minmax(0,1fr))!important}}


/* V16.54 — iOS/mobile form-focus zoom fix.
   Safari zooms the viewport when a focused control is rendered below 16px.
   Keep user pinch-zoom enabled; only ensure interactive form text stays >=16px. */
@media (max-width:1040px){
  .contact-page .field input,
  .contact-page .field select,
  .contact-page .field textarea,
  .reservation-form input,
  .reservation-form select,
  .reservation-form textarea{
    font-size:16px!important;
  }
}
