:root{
  --bg:#f5efe7;
  --bg-deep:#eadfce;
  --surface:#fffdfa;
  --surface-soft:rgba(255,251,246,.78);
  --surface-strong:#fcf8f2;
  --ink:#1d1712;
  --muted:#6f665d;
  --line:#e6d8ca;
  --line-strong:#ceb9a1;
  --panel:#1b1511;
  --panel-2:#2b221b;
  --accent:#8c6a3b;
  --accent-soft:#f4e8d7;
  --accent-glow:rgba(140,106,59,.18);
  --shadow:0 32px 70px rgba(29,23,18,.1);
  --shadow-soft:0 18px 40px rgba(29,23,18,.08);
  --shadow-panel:0 32px 70px rgba(12,9,7,.34);
  --radius-xl:36px;
  --radius-lg:28px;
  --radius-md:21px;
  --radius-sm:14px;
  --max:1240px;
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --head:"Manrope",var(--sans);
  --ease:cubic-bezier(.2,.8,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.65;
  background:
    radial-gradient(circle at top left, rgba(194,160,112,.16), transparent 28%),
    radial-gradient(circle at 88% 8%, rgba(61,46,34,.06), transparent 20%),
    linear-gradient(180deg, #fcf8f2 0rem, #f5efe7 28rem, #efe4d5 100%);
  overflow-x:hidden;
  scroll-padding-top:6rem;
}
body::before,
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
}
body::before{
  opacity:.22;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.18'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
body::after{
  background:
    radial-gradient(circle at 16% 14%, rgba(212,178,122,.16), transparent 18%),
    radial-gradient(circle at 80% 30%, rgba(255,255,255,.42), transparent 18%),
    radial-gradient(circle at 50% 100%, rgba(131,104,74,.08), transparent 24%);
}
img{display:block; width:100%; max-width:100%;}
a{color:inherit;}
button,input,textarea{font:inherit;}
textarea{resize:vertical;}
iframe{border:0; width:100%; display:block;}

.container{width:min(var(--max), calc(100% - 2rem)); margin-inline:auto;}
.section{padding:1.7rem 0 0; position:relative;}
.section-shell{padding:1.6rem 0 0; position:relative;}
.section-band{padding:1rem 0 .5rem;}
.section::after,
.section-shell::after{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  transform:translateX(-50%);
  width:min(calc(100% - 2rem), var(--max));
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(140,106,59,.18), transparent);
}
.hero.section-shell::after,
.section-band::after,
.section-contact::after,
.site-footer::after{display:none;}

.skip-link{position:absolute; left:-9999px; top:auto;}
.skip-link:focus{
  left:1rem; top:1rem; z-index:400;
  background:#fff; border:1px solid var(--line-strong); padding:.8rem 1rem; border-radius:12px;
}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); border:0;
}

.utility-bar{
  max-height:8rem;
  overflow:hidden;
  border-bottom:1px solid rgba(206,185,161,.52);
  background:rgba(255,252,248,.74);
  backdrop-filter:blur(18px);
  transition:max-height .34s var(--ease), opacity .28s ease, transform .28s ease, border-color .28s ease;
}
.utility-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,.7fr));
  gap:.8rem;
  padding:.6rem 0;
}
.utility-item{
  display:grid;
  gap:.04rem;
  font-size:.88rem;
  color:var(--muted);
}
.utility-item a{text-decoration:none;}
.utility-item a:hover{color:var(--ink);}
.utility-label{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
}

.site-header{
  position:sticky;
  top:0;
  z-index:250;
  background:rgba(249,243,236,.74);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(198,176,151,.34);
  transition:background-color .25s ease, box-shadow .25s ease, border-color .25s ease, transform .35s var(--ease);
}
.site-header::after{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent);
  pointer-events:none;
}
.site-header.is-scrolled{
  background:rgba(252,247,241,.92);
  box-shadow:0 18px 40px rgba(29,23,18,.06);
}
.site-header.is-hidden{transform:translateY(-100%);}
.site-header.is-scrolled .utility-bar{
  max-height:0;
  opacity:0;
  transform:translateY(-12px);
  border-bottom-color:transparent;
}
.site-header.is-compact .nav-row{padding:.7rem 0;}
.site-header.is-compact .brand-logo-wordmark{width:min(100%, 268px);}
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.92rem 0;
  transition:padding .25s ease;
}
.brand{
  display:inline-flex;
  align-items:center;
  min-width:0;
  text-decoration:none;
}
.brand-logo{display:block; width:min(100%, 320px); height:auto;}
.brand-logo-wordmark{width:min(100%, 312px); transition:width .25s ease, transform .25s ease;}
.brand-logo-footer{width:min(100%, 460px);}
.brand-footer{display:inline-flex; max-width:100%;}
.brand-seal{
  display:inline-flex;
  align-items:center;
  gap:.82rem;
  padding:.72rem .86rem;
  border-radius:22px;
  background:rgba(255,250,245,.76);
  border:1px solid rgba(230,216,202,.94);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(12px);
}
.brand-seal img{
  width:52px;
  height:52px;
  border-radius:16px;
  box-shadow:0 16px 32px rgba(29,23,18,.12);
  flex-shrink:0;
}
.brand-seal-copy{display:grid; gap:.14rem; line-height:1.15;}
.brand-seal-copy strong{font-family:var(--head); font-size:.98rem;}
.brand-seal-copy span{color:var(--muted); font-size:.82rem; font-weight:700; letter-spacing:.02em;}
.brand-seal-soft{margin-bottom:.85rem; background:rgba(255,252,248,.64);}
.brand-seal-compact{margin:.8rem 0 1rem; padding:.62rem .74rem;}
.brand-seal-compact img{width:46px; height:46px; border-radius:14px;}
.brand-seal-inline{margin:0 0 .8rem;}
.footer-mini-brand{display:inline-flex; max-width:100%; margin-bottom:.8rem;}
.footer-mini-brand-logo{display:block; width:min(100%, 290px); height:auto;}

.site-nav{display:flex; align-items:center; gap:1rem; flex-wrap:wrap;}
.site-nav a{
  position:relative;
  text-decoration:none;
  color:var(--muted);
  font-weight:700;
  font-size:.95rem;
  transition:color .18s ease, transform .18s ease;
}
.site-nav a:not(.button)::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-.32rem;
  width:100%;
  height:1px;
  background:linear-gradient(90deg, rgba(140,106,59,.72), rgba(140,106,59,0));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .22s ease;
}
.site-nav a:hover{color:var(--ink); transform:translateY(-1px);}
.site-nav a:hover::after{transform:scaleX(1);}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:.92rem 1.18rem;
  border-radius:999px;
  text-decoration:none;
  border:1px solid transparent;
  font-weight:800;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
.button:hover{transform:translateY(-1px);}
.button:active{transform:translateY(0);}
.button-dark{
  background:linear-gradient(180deg, #2e241c, var(--panel));
  color:#fff;
  box-shadow:0 18px 32px rgba(18,13,10,.16);
}
.button-dark:hover{background:linear-gradient(180deg, #372a21, #17110d);}
.button-light{
  background:rgba(255,251,246,.84);
  color:var(--ink);
  border-color:var(--line);
  box-shadow:0 12px 26px rgba(29,23,18,.05);
}
.button-light:hover{background:#fffdfa; border-color:var(--line-strong);}
.button-nav{padding:.8rem 1rem; min-height:44px;}
.button-inline{margin-top:1rem;}

.nav-toggle{
  display:none;
  width:48px;
  height:48px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,253,249,.94);
  padding:0;
  cursor:pointer;
  box-shadow:var(--shadow-soft);
}
.nav-toggle span{
  display:block;
  width:18px;
  height:2px;
  background:var(--ink);
  margin:4px auto;
  border-radius:999px;
  transition:transform .2s ease, opacity .2s ease;
}

.hero{
  padding:1.45rem 0 0;
  overflow:hidden;
}
.hero::before,
.hero::after{
  content:"";
  position:absolute;
  pointer-events:none;
  border-radius:999px;
  filter:blur(24px);
}
.hero::before{
  width:26rem;
  height:26rem;
  right:-10rem;
  top:-8rem;
  background:radial-gradient(circle, rgba(212,178,122,.22), transparent 62%);
}
.hero::after{
  width:18rem;
  height:18rem;
  left:-7rem;
  bottom:2rem;
  background:radial-gradient(circle, rgba(255,255,255,.6), transparent 66%);
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);
  gap:1.25rem;
  align-items:start;
}
.hero-copy{padding:1rem 0;}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.78rem;
  font-weight:800;
  color:var(--muted);
}
.eyebrow-line{width:40px; height:1px; background:linear-gradient(90deg, var(--accent), transparent);}
.eyebrow-light{color:rgba(255,255,255,.78);}
.eyebrow-light .eyebrow-line{background:linear-gradient(90deg, rgba(232,208,162,.8), rgba(255,255,255,0));}
.hero-copy h1{
  margin:.78rem 0 .95rem;
  font-family:var(--head);
  font-size:clamp(2.9rem,5.6vw,5.35rem);
  line-height:.96;
  letter-spacing:-.06em;
  max-width:10.8ch;
}
.lead{margin:0; max-width:60ch; color:var(--muted); font-size:1.05rem;}
.hero-actions{display:flex; flex-wrap:wrap; gap:.75rem; margin:1.4rem 0 1.05rem;}
.hero-tags{display:flex; flex-wrap:wrap; gap:.62rem; margin:0 0 1.15rem;}
.hero-tags span{
  padding:.56rem .85rem;
  border-radius:999px;
  background:rgba(255,252,248,.82);
  border:1px solid var(--line);
  color:var(--ink);
  font-size:.92rem;
  font-weight:700;
  box-shadow:var(--shadow-soft);
}
.hero-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}
.hero-facts article,
.stat-card,
.info-card,
.panel-card,
.company-sheet,
.company-note,
.rail-card,
.enquiry-builder,
.pricing-board,
.coverage-card,
.faq-item,
.sector-row,
.timeline-step,
.operations-card,
.map-card,
.gallery-photo,
.contact-form,
.service-panel{
  background:var(--surface-soft);
  border:1px solid rgba(230,216,202,.94);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(14px);
}
.hero-facts article{
  position:relative;
  border-radius:var(--radius-md);
  padding:1rem 1rem 1.05rem;
  overflow:hidden;
}
.hero-facts article::after,
.info-card::after,
.stat-card::after,
.coverage-card::after,
.panel-card::after,
.company-sheet::after,
.company-note::after,
.enquiry-builder::after,
.pricing-board::after,
.timeline-step::after,
.rail-card::after,
.sector-row::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg, rgba(255,255,255,.38), transparent 24%, transparent 70%, rgba(140,106,59,.05));
}
.hero-facts strong{font-size:1.1rem; line-height:1.15;}
.fact-label{
  display:block;
  color:var(--muted);
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:800;
  margin-bottom:.45rem;
}

.hero-visual{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:1rem;
  grid-template-areas:
    "large card"
    "large small";
  align-items:stretch;
}
.media-card{
  overflow:hidden;
  border-radius:34px;
  min-height:240px;
  position:relative;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.28);
}
.media-card img,
.gallery-photo img{
  height:100%;
  object-fit:cover;
  transform:scale(1.045);
  transition:transform 1.2s var(--ease), filter .6s ease;
  filter:saturate(.92) contrast(1.03) sepia(.04);
}
.media-card::before,
.gallery-photo::before{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.22);
  border-radius:inherit;
  pointer-events:none;
  z-index:2;
}
.media-card::after,
.gallery-photo::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:34%;
  background:linear-gradient(180deg, transparent, rgba(27,21,17,.12));
  pointer-events:none;
  z-index:1;
}
.media-card-tall{grid-area:large; min-height:620px;}
.media-card-short{grid-area:small; min-height:220px;}
.operations-card{
  grid-area:card;
  border-radius:30px;
  padding:1.12rem;
  background:linear-gradient(180deg, rgba(255,250,245,.92), rgba(252,246,239,.72));
}
.operations-card h2{margin:.95rem 0 1rem; font-family:var(--head); font-size:1.5rem; line-height:1.08;}
.operations-top{display:flex; gap:.55rem; flex-wrap:wrap;}
.pill{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.46rem .8rem;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  background:var(--panel);
  color:#fff;
}
.pill-soft{background:var(--accent-soft); color:var(--accent);}
.operations-list,
.feature-list,
.pricing-footnote ul,
.footer-list,
.prose ul,
.prose ol{margin:0; padding-left:1.1rem;}
.operations-list li{
  display:grid;
  grid-template-columns:24px 1fr;
  gap:.75rem;
  align-items:start;
  list-style:none;
  padding:0;
  margin:0 0 .9rem;
}
.operations-list li:last-child{margin-bottom:0;}
.operations-list svg{width:18px; height:18px; color:var(--accent); margin-top:.2rem;}

.stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem;}
.stat-card{
  padding:1.25rem;
  border-radius:24px;
  position:relative;
  overflow:hidden;
}
.stat-card::before,
.info-card::before,
.coverage-card::before,
.panel-card::before,
.company-sheet::before,
.company-note::before,
.enquiry-builder::before,
.pricing-board::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:1px;
  background:linear-gradient(90deg, rgba(140,106,59,.58), rgba(140,106,59,0));
}
.stat-card svg{width:22px; height:22px; color:var(--accent);}
.stat-card h2{margin:.95rem 0 .55rem; font-family:var(--head); font-size:1.2rem; line-height:1.08;}
.stat-card p{margin:0; color:var(--muted);}

.section-head-inline,
.heading-inline{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.15rem;
}
.section-head-inline p,
.heading-inline p,
.section-heading p,
.showcase-copy p,
.pricing-copy p,
.map-copy p,
.company-note p{color:var(--muted);}
.section-heading h2,
.section-head-inline h2,
.showcase-copy h2,
.panel-card h2,
.pricing-copy h2,
.map-copy h2,
.company-note h2,
.builder-head h2,
.policy-hero h1{
  margin:.72rem 0 .34rem;
  font-family:var(--head);
  font-size:clamp(2.1rem,3vw,3.2rem);
  line-height:1.01;
  letter-spacing:-.05em;
}

.intro-grid,
.showcase-grid,
.map-layout,
.company-grid,
.contact-grid,
.details-grid,
.pricing-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1.15rem;
  align-items:start;
}
.section-heading{max-width:62ch;}

.sector-board{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem;}
.sector-row{
  border-radius:24px;
  padding:1.08rem;
  display:grid;
  grid-template-columns:60px 1fr;
  gap:.9rem;
  align-items:start;
  position:relative;
  overflow:hidden;
}
.sector-icon{
  width:60px;
  height:60px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg, rgba(140,106,59,.14), rgba(140,106,59,.08));
}
.sector-icon svg{width:24px; height:24px; color:var(--accent);}
.sector-row h3{margin:.15rem 0 .35rem; font-family:var(--head); font-size:1.18rem; line-height:1.08;}
.sector-row p{margin:0; color:var(--muted);}

.cards-grid{display:grid; gap:1rem;}
.cards-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.info-card{
  padding:1.22rem;
  border-radius:24px;
  position:relative;
  overflow:hidden;
}
.card-chip{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  border-radius:999px;
  padding:.28rem .7rem;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.info-card h3{margin:.95rem 0 .48rem; font-family:var(--head); font-size:1.3rem; line-height:1.08;}
.info-card p{margin:0; color:var(--muted);}

.showcase-copy{padding:1rem 0;}
.checklist{display:grid; gap:.85rem; margin-top:1.2rem;}
.check-item{display:grid; grid-template-columns:24px 1fr; gap:.75rem; align-items:start;}
.check-item svg{width:18px; height:18px; color:var(--accent); margin-top:.18rem;}
.showcase-photos{display:grid; grid-template-columns:1.05fr .95fr; gap:1rem;}
.gallery-photo{min-height:260px; overflow:hidden; border-radius:30px; position:relative;}
.gallery-photo-large{grid-row:span 2; min-height:100%;}

.panel-card{border-radius:28px; padding:1.3rem; position:relative; overflow:hidden;}
.panel-card-dark{
  background:linear-gradient(180deg, #2c221b, #17110d);
  color:#fff;
  border-color:rgba(255,255,255,.08);
  box-shadow:var(--shadow-panel);
}
.feature-list{display:grid; gap:.72rem; margin-top:1rem; color:var(--muted);}
.feature-list li{margin:0;}
.feature-list-light{color:rgba(255,255,255,.76);}

.timeline{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem;}
.timeline-step{border-radius:24px; padding:1.2rem; position:relative; overflow:hidden;}
.step-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  border-radius:17px;
  background:linear-gradient(180deg, rgba(140,106,59,.16), rgba(140,106,59,.08));
  color:var(--accent);
  font-weight:800;
  letter-spacing:.06em;
}
.timeline-step h3{margin:.95rem 0 .45rem; font-family:var(--head); font-size:1.18rem; line-height:1.08;}
.timeline-step p{margin:0; color:var(--muted);}

.map-copy{padding:1rem 0;}
.coverage-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.2rem 0;}
.coverage-card{border-radius:22px; padding:1rem; position:relative; overflow:hidden;}
.coverage-card h3{margin:0 0 .35rem; font-family:var(--head); font-size:1.08rem;}
.coverage-card p{margin:0; color:var(--muted);}
.quick-links{display:flex; gap:.8rem; flex-wrap:wrap;}
.map-card{border-radius:34px; overflow:hidden; min-height:560px; position:relative;}
.map-card iframe{height:100%; min-height:560px; filter:saturate(.55) contrast(1.02) sepia(.16) hue-rotate(-8deg);}

.pricing-copy{padding:1rem 0;}
.pricing-note{font-weight:600;}
.pricing-board{border-radius:30px; padding:1rem; position:relative; overflow:hidden;}
.pricing-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem .2rem;
  border-bottom:1px solid var(--line);
}
.pricing-row:last-of-type{border-bottom:0;}
.pricing-row span{font-weight:700;}
.pricing-row strong{font-family:var(--head);}
.pricing-footnote{
  margin-top:1rem;
  padding:1rem 1rem 1rem 1.1rem;
  border-radius:24px;
  background:rgba(255,252,247,.72);
  border:1px solid var(--line);
}
.pricing-footnote h3{margin:0 0 .65rem; font-family:var(--head); font-size:1.12rem;}
.pricing-footnote li{margin:.28rem 0;}

.company-sheet,
.company-note,
.rail-card,
.enquiry-builder,
.contact-form,
.faq-item{border-radius:28px;}
.company-sheet,
.company-note{padding:1.25rem; position:relative; overflow:hidden;}
.sheet-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.sheet-head h2{margin:0; font-family:var(--head); font-size:1.45rem; line-height:1.06;}
.sheet-list{display:grid; gap:1rem; margin:0;}
.sheet-list div{display:grid; gap:.24rem;}
.sheet-list dt{font-size:.77rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--muted);}
.sheet-list dd{margin:0; font-weight:600;}
.company-note p:last-child{margin-bottom:0;}

.faq-layout{display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:1rem; align-items:start;}
.faq-list{display:grid; gap:.9rem;}
.faq-item{padding:0; overflow:hidden;}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:1.1rem 1.2rem;
  font-weight:800;
  position:relative;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";
  position:absolute;
  right:1.2rem;
  top:50%;
  transform:translateY(-50%);
  color:var(--accent);
  font-size:1.25rem;
}
.faq-item[open] summary::after{content:"−";}
.faq-item p{margin:0; padding:0 1.2rem 1.15rem; color:var(--muted);}

.contact-grid{grid-template-columns:minmax(280px,.44fr) minmax(0,.56fr);}
.contact-rail{display:grid; gap:1rem;}
.rail-card{padding:1.15rem; position:relative; overflow:hidden;}
.rail-card h2,.rail-card h3{margin:0 0 .95rem; font-family:var(--head); line-height:1.05;}
.rail-link{
  display:grid;
  grid-template-columns:22px 1fr;
  gap:.75rem;
  align-items:center;
  min-height:52px;
  padding:.95rem 1rem;
  border-radius:18px;
  text-decoration:none;
  background:rgba(255,252,248,.72);
  border:1px solid var(--line);
  margin-bottom:.75rem;
}
.rail-link svg{width:18px; height:18px; color:var(--accent);}
.copy-btn{
  width:100%;
  min-height:48px;
  border-radius:16px;
  border:1px solid var(--line);
  background:#fffdfa;
  cursor:pointer;
  font-weight:800;
  margin-bottom:.7rem;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.copy-btn:hover{transform:translateY(-1px); box-shadow:var(--shadow-soft); border-color:var(--line-strong);}
.copy-btn:last-child{margin-bottom:0;}
.small-note{color:var(--muted); margin:0;}
.rail-card-muted{background:linear-gradient(180deg, rgba(255,251,246,.78), rgba(249,242,233,.84));}

.enquiry-builder{position:relative; overflow:hidden; padding:1.2rem;}
.builder-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.1rem;
}
.builder-head p{max-width:38ch; margin:0; color:var(--muted);}
.contact-form{padding:0; border:0; box-shadow:none; background:transparent;}
.field-group{margin-bottom:1rem;}
.group-title{
  display:block;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:.55rem;
  color:var(--muted);
}
.choice-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem;}
.choice-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr));}
.choice-grid label{position:relative; display:block;}
.choice-grid input{position:absolute; inset:0; opacity:0;}
.choice-grid span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  text-align:center;
  padding:.85rem .85rem;
  border-radius:18px;
  background:rgba(255,252,248,.76);
  border:1px solid var(--line);
  font-weight:700;
  transition:border-color .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.choice-grid input:checked + span{
  background:var(--accent-soft);
  border-color:rgba(140,106,59,.45);
  color:var(--accent);
  box-shadow:0 12px 24px rgba(140,106,59,.08);
}
.choice-grid label:hover span{transform:translateY(-1px);}
.form-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem;}
.form-grid label{display:grid; gap:.42rem;}
.form-grid span{font-weight:700; font-size:.95rem;}
.form-grid input,
.form-grid textarea{
  width:100%;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(255,252,248,.84);
  padding:.95rem 1rem;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.form-grid input:focus,
.form-grid textarea:focus{
  border-color:rgba(140,106,59,.48);
  box-shadow:0 0 0 4px rgba(140,106,59,.08);
  background:#fffdfa;
}
.field-span-2{grid-column:span 2;}
.form-actions{display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1rem;}
.form-feedback{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  margin-top:1rem;
  padding:.88rem 1rem;
  border-radius:18px;
  background:rgba(255,252,248,.8);
  border:1px solid var(--line);
  color:var(--muted);
}
.form-feedback svg{width:18px; height:18px; color:var(--accent);}
.form-feedback.is-success{background:var(--accent-soft); border-color:rgba(140,106,59,.36); color:var(--accent);}

.mobile-cta{display:none;}
.site-footer{
  margin-top:2.4rem;
  padding:2rem 0 1rem;
  background:linear-gradient(180deg, rgba(28,20,15,.98), rgba(14,10,7,.99));
  color:rgba(255,255,255,.84);
  position:relative;
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(232,208,162,.42), transparent);
}
.footer-grid{display:grid; grid-template-columns:1.25fr .8fr .8fr; gap:1.2rem;}
.footer-copy{max-width:52ch; color:rgba(255,255,255,.7);}
.site-footer h2{margin:0 0 .8rem; font-size:1rem; font-family:var(--head); color:#fff;}
.footer-list{display:grid; gap:.55rem; color:rgba(255,255,255,.72);}
.footer-list a{text-decoration:none;}
.footer-list a:hover{color:#fff;}
.footer-bottom{
  margin-top:1.1rem;
  padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.6);
}
.footer-bottom p{margin:0;}
.subpage-footer .footer-bottom{display:flex; flex-direction:column; align-items:flex-start;}

/* legal pages */
.subpage-body{background:linear-gradient(180deg, #fcf8f2 0rem, #f3ebdf 100%);}
.subpage-header{position:sticky; top:0;}
.subpage-nav{gap:1rem;}
.policy-main{padding:0 0 2rem;}
.policy-hero{padding:3rem 0 1rem;}
.policy-hero h1{font-size:clamp(2.3rem,4vw,4rem);}
.policy-hero p{max-width:62ch; color:var(--muted);}
.policy-section{padding:0 0 1rem;}
.prose{
  background:rgba(255,251,246,.82);
  border:1px solid var(--line);
  border-radius:30px;
  box-shadow:var(--shadow-soft);
  padding:1.4rem;
}
.prose h2{margin:1.25rem 0 .45rem; font-family:var(--head); font-size:1.35rem; line-height:1.08;}
.prose p,.prose li{color:var(--muted);}
.prose strong{color:var(--ink);}
.subpage-footer{margin-top:0;}

/* reveal / motion */
[data-reveal]{
  opacity:0;
  transform:translateY(28px) scale(.986);
  filter:blur(10px);
  transition:opacity .78s var(--ease), transform .78s var(--ease), filter .78s var(--ease);
  will-change:transform, opacity, filter;
}
[data-reveal].is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0);
}
[data-reveal].is-visible img{transform:scale(1);}
[data-parallax]{transition:transform .25s ease; will-change:transform;}

@media (hover:hover){
  .stat-card:hover,
  .info-card:hover,
  .panel-card:hover,
  .coverage-card:hover,
  .timeline-step:hover,
  .sector-row:hover,
  .rail-card:hover,
  .pricing-board:hover,
  .company-sheet:hover,
  .company-note:hover,
  .faq-item:hover,
  .gallery-photo:hover,
  .media-card:hover,
  .enquiry-builder:hover{
    transform:translateY(-4px);
    box-shadow:0 24px 54px rgba(29,23,18,.1);
    border-color:rgba(206,185,161,.86);
  }
  .gallery-photo:hover img,
  .media-card:hover img{transform:scale(1.04);}
  .button:hover{box-shadow:0 16px 30px rgba(29,23,18,.08);}
}

@media (max-width: 1080px){
  .cards-grid-3,
  .timeline{grid-template-columns:repeat(2,minmax(0,1fr));}
  .intro-grid,
  .showcase-grid,
  .map-layout,
  .company-grid,
  .contact-grid,
  .details-grid,
  .pricing-grid,
  .faq-layout{grid-template-columns:1fr;}
  .faq-layout{gap:1rem;}
  .hero-copy h1{max-width:11.5ch;}
}

@media (max-width: 920px){
  .utility-bar{display:none;}
  .brand-logo-wordmark{width:min(100%, 230px);}
  .site-header,
  .site-header.is-scrolled{background:rgba(252,247,241,.94);}
  .nav-row{padding:.78rem 0;}
  .nav-toggle{display:block;}
  .site-nav{
    position:absolute;
    left:.7rem;
    right:.7rem;
    top:calc(100% + .45rem);
    display:grid;
    gap:.55rem;
    padding:1rem;
    border-radius:20px;
    background:rgba(255,252,248,.97);
    border:1px solid var(--line);
    box-shadow:0 22px 52px rgba(29,23,18,.12);
    backdrop-filter:blur(16px);
    max-height:calc(100dvh - 5rem);
    overflow:auto;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:opacity .2s ease, visibility .2s ease, transform .2s ease;
  }
  .site-nav.is-open{opacity:1; visibility:visible; transform:translateY(0);}
  .site-nav a{padding:.35rem 0; font-size:1rem;}
  .site-nav .button-nav{width:100%; margin-top:.2rem;}
  .hero-grid{grid-template-columns:1fr; gap:1rem;}
  .hero-copy{padding:.25rem 0 0;}
  .hero-visual{grid-template-columns:1fr 1fr; gap:.85rem;}
  .hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .section-head-inline,
  .heading-inline,
  .builder-head{align-items:start; flex-direction:column;}
  .sector-board,
  .coverage-grid,
  .choice-grid,
  .choice-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-grid{grid-template-columns:1fr;}
}

@media (max-width: 720px){
  body{padding-bottom:5.7rem;}
  .container{width:min(var(--max), calc(100% - 1rem));}
  .brand-logo-wordmark{width:min(100%, 186px);}
  .brand-logo-footer{width:min(100%, 100%);}
  .brand-seal{width:100%;}
  .hero{padding-top:.8rem;}
  .hero-copy h1{font-size:clamp(2.1rem,10vw,3rem); max-width:none; letter-spacing:-.055em;}
  .lead{font-size:1rem; max-width:100%;}
  .hero-actions{margin:1rem 0 .95rem;}
  .hero-actions .button{flex:1 1 100%; min-height:48px;}
  .hero-tags{gap:.5rem; margin-bottom:.95rem;}
  .hero-tags span{font-size:.84rem;}
  .hero-tags span:nth-child(n+5){display:none;}
  .hero-facts,
  .stats-grid,
  .cards-grid-3,
  .timeline,
  .showcase-photos,
  .sector-board,
  .form-grid{grid-template-columns:1fr;}
  .hero-facts{gap:.65rem;}
  .hero-visual{
    grid-template-columns:1fr;
    grid-template-areas:"card" "large";
    gap:.78rem;
  }
  .operations-card{border-radius:24px; padding:1rem;}
  .media-card-tall{min-height:320px; border-radius:28px;}
  .media-card-short{display:none;}
  .gallery-photo-large{grid-row:auto; min-height:280px;}
  .pricing-row{align-items:start; flex-direction:column;}
  .choice-grid,
  .choice-grid-compact{grid-template-columns:1fr;}
  .field-span-2{grid-column:auto;}
  .map-card,
  .map-card iframe{min-height:320px;}
  .policy-hero{padding-top:2rem;}
  .section{padding-top:1.05rem;}
  .section-shell{padding-top:.95rem;}
  .mobile-cta{
    position:fixed;
    left:.7rem;
    right:.7rem;
    bottom:.7rem;
    z-index:260;
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);
    gap:.6rem;
    padding:.55rem;
    border-radius:22px;
    background:rgba(24,18,13,.94);
    backdrop-filter:blur(18px);
    box-shadow:0 24px 40px rgba(12,9,7,.22);
    border:1px solid rgba(232,208,162,.14);
  }
  .mobile-cta-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    border-radius:16px;
    text-decoration:none;
    font-weight:800;
    color:#fff;
    background:rgba(255,255,255,.08);
  }
  .mobile-cta-primary{
    background:linear-gradient(180deg, #9b7645, #7d5e34);
    color:#fffdfa;
  }
}

@media (max-width: 560px){
  .nav-row{gap:.65rem;}
  .nav-toggle{width:44px; height:44px; border-radius:12px;}
  .hero-copy h1{font-size:clamp(1.92rem,10.4vw,2.64rem);}
  .hero-facts article,
  .stat-card,
  .info-card,
  .timeline-step,
  .coverage-card,
  .faq-item,
  .rail-card,
  .enquiry-builder,
  .pricing-board,
  .company-sheet,
  .company-note,
  .map-card{border-radius:22px;}
  .hero-facts article,
  .stat-card,
  .info-card,
  .timeline-step,
  .coverage-card,
  .rail-card,
  .company-sheet,
  .company-note,
  .pricing-board,
  .enquiry-builder{padding:1rem;}
  .map-card,
  .map-card iframe{min-height:280px;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none !important; transition:none !important;}
  [data-reveal]{opacity:1; transform:none; filter:none;}
}

.not-found-main{padding:4rem 0 6rem; min-height:100dvh; display:grid; place-items:center;}
.not-found-shell{
  max-width:760px;
  text-align:center;
  background:rgba(255,251,246,.84);
  border:1px solid var(--line);
  border-radius:32px;
  padding:2rem;
  box-shadow:var(--shadow);
}
.not-found-shell h1{
  margin:.8rem 0 .7rem;
  font-family:var(--head);
  font-size:clamp(2.2rem,5vw,4rem);
  line-height:1.02;
  letter-spacing:-.05em;
}
.not-found-shell p{margin:0 auto; max-width:40ch; color:var(--muted);}
.not-found-logo{width:min(100%, 330px); height:auto; margin:0 auto 1.2rem;}
.not-found-shell .hero-actions{justify-content:center; margin-top:1.2rem;}
