:root{
  --cream:#F7F2E7;
  --sand:#EFE4CC;
  --ink:#2B1E19;
  --ink-soft:#6E5E4C;
  --caramel:#A57865;
  --caramel-deep:#875A48;
  --azur:#5D6E99;
  --white:#FBF8F0;
  --line: rgba(43,30,25,0.14);
  --shadow: 0 20px 50px -20px rgba(43,30,25,0.35);
  --radius: 2px;
  --ff-display: 'Lora', serif;
  --ff-body: 'Manrope', Arial, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--ff-body);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{
  font-family:var(--ff-display);
  font-weight:400;
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:0.005em;
  color:var(--ink);
}
p{margin:0 0 1em; line-height:1.65; color:var(--ink-soft);}
.body-lg{font-size:1.08rem; line-height:1.75;}

.grain{
  position:fixed; inset:0; pointer-events:none; z-index:999; opacity:.035; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ---------- Eyebrow labels ---------- */
.eyebrow{
  font-family:var(--ff-body);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--caramel-deep);
  font-weight:500;
  margin:0 0 1.1em;
}
.eyebrow-light{color:#EADFC2;}
.eyebrow-center{text-align:center;}

/* ---------- Header ---------- */
#site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition: background .4s ease, box-shadow .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
#site-header.solid{
  background:rgba(237,230,211,0.9);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:1620px; margin:0 auto; padding:20px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.logo{display:flex; align-items:center; flex-shrink:0;}
.logo svg{height:22px; width:auto; display:block;}
#site-header:not(.solid) .logo svg path{ fill:#FBF8F0; }
.nav .menu-item{list-style:none; display:flex; align-items:center; margin:0; padding:0;}
.nav{display:flex; gap:20px; flex:1; justify-content:center;}
.nav a{
  font-size:.78rem; letter-spacing:.03em; font-weight:400; color:var(--ink); white-space:nowrap;
  position:relative; padding:6px 2px; transition:color .25s ease;
}
#site-header:not(.solid) .nav a{color:#FBF8F0;}
.nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:0; height:1.5px; background:var(--azur);
  transition:right .3s ease;
}
.nav a:hover::after, .nav a.active::after{right:0;}
.header-right{display:flex; align-items:center; gap:20px; flex-shrink:0;}
.lang-switch{display:flex; align-items:center; gap:6px; font-size:.72rem; letter-spacing:.08em;}
.lang{background:none; border:none; font-family:var(--ff-body); cursor:pointer; color:var(--ink-soft); padding:2px;}
#site-header:not(.solid) .lang{color:#E7DFC9;}
.lang.active{color:var(--caramel-deep); font-weight:500;}
#site-header:not(.solid) .lang.active{color:#FBF8F0;}
.lang-dot{color:var(--ink-soft); opacity:.5; font-size:.7rem;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{width:20px; height:1.5px; background:var(--ink);}
#site-header:not(.solid) .burger span{background:#FBF8F0;}

/* ---------- Mobile nav panel ---------- */
.mobile-nav-panel{
  display:none; position:fixed; inset:0; z-index:150; background:var(--cream);
  flex-direction:column; padding:100px 32px 40px; overflow-y:auto;
}
.mobile-nav-panel.open{display:flex;}
.mnp-close{
  position:absolute; top:20px; right:20px; background:none; border:none; cursor:pointer;
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
}
.mnp-close span{position:absolute; width:20px; height:1.6px; background:var(--ink);}
.mnp-close span:first-child{transform:rotate(45deg);}
.mnp-close span:last-child{transform:rotate(-45deg);}
.mobile-nav-panel nav{display:flex; flex-direction:column;}
.mobile-nav-panel nav a{
  padding:16px 0; font-size:1.2rem; font-family:var(--ff-display); color:var(--ink);
  text-decoration:none; border-bottom:1px solid var(--line);
}
.mobile-nav-panel nav a.active{color:var(--caramel-deep);}
.mnp-lang{display:flex; gap:10px; margin:28px 0 20px;}
.mnp-lang button{
  background:none; border:1px solid var(--line); padding:8px 18px; border-radius:20px;
  cursor:pointer; font-family:inherit; font-size:.8rem; letter-spacing:.06em; color:var(--ink-soft);
}
.mnp-lang button.active{background:var(--caramel); color:#fff; border-color:var(--caramel);}
.mobile-nav-panel .btn{align-self:flex-start; margin-top:8px;}
body.nav-locked{overflow:hidden;}
@media (min-width:1081px){.mobile-nav-panel{display:none !important;}}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 22px; font-family:var(--ff-body); font-size:.82rem; letter-spacing:.04em;
  border-radius:var(--radius); border:1px solid transparent; cursor:pointer;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--caramel); color:var(--white);}
.btn-primary:hover{background:var(--caramel-deep); transform:translateY(-1px);}
.btn-lg{padding:14px 30px; font-size:.86rem;}
.btn-ghost{border-color:rgba(251,248,240,.55); color:#FBF8F0;}
.btn-ghost:hover{border-color:#FBF8F0; background:rgba(251,248,240,.08);}
.btn-outline{border-color:var(--caramel); color:var(--caramel-deep); margin-top:8px;}
.btn-outline:hover{background:var(--caramel); color:var(--white);}

/* ---------- Hero ---------- */
.hero{
  position:relative; height:100vh; min-height:640px; max-height:980px;
  display:flex; align-items:flex-end; overflow:hidden; background:var(--sand);
}
.hero-media{position:absolute; inset:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; transform:scale(1.02);}
.hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,14,9,.28) 0%, rgba(25,17,11,.32) 30%, rgba(30,20,13,.5) 62%, rgba(20,14,9,.72) 100%);
}
.hero-content{position:relative; z-index:2; padding:0 32px 92px; max-width:1320px; margin:0 auto; width:100%;}
.hero .eyebrow-light{text-shadow:0 1px 3px rgba(0,0,0,.85), 0 2px 10px rgba(0,0,0,.6);}
.hero h1{
  font-size:clamp(2.4rem, 5.4vw, 4.4rem);
  color:#FBF8F0; font-weight:400; max-width:15ch;
  text-shadow:0 1px 3px rgba(0,0,0,.9), 0 4px 14px rgba(0,0,0,.65), 0 10px 34px rgba(0,0,0,.4);
}
.hero h1 .accent{color:#FBF8F0; font-weight:400;}
.hero-sub{color:#EFE7D2; max-width:46ch; font-size:1.02rem; opacity:.96; text-shadow:0 1px 3px rgba(0,0,0,.85), 0 3px 12px rgba(0,0,0,.55);}
.hero-actions{display:flex; gap:16px; margin-top:1.6em; flex-wrap:wrap;}
.horizon{position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg, var(--caramel) 0%, var(--azur) 55%, var(--azur) 100%); z-index:3;}
.horizon-dot{
  position:absolute; top:-4px; left:62%; width:10px; height:10px; border-radius:50%;
  background:var(--azur); box-shadow:0 0 0 5px rgba(93,110,153,.25);
}

/* ---------- Stats strip ---------- */
.stats{background:var(--white); position:relative; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.stats::before{content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg, var(--caramel), var(--azur));}
.stats-inner{
  max-width:1100px; margin:0 auto; padding:52px 32px;
  display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap;
}
.stats-lead{text-align:center; padding-top:36px; font-family:var(--ff-body); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--caramel-deep); font-weight:500;}
.stat{text-align:center; padding:0 44px;}
.stat-num{display:block; font-family:var(--ff-display); font-size:2.5rem; color:var(--ink); font-weight:400; line-height:1;}
.stat-num.is-text{display:inline-block; font-size:1.35rem; line-height:1.2; max-width:11ch;}
.stat-label{display:block; margin-top:.6em; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft);}
.stat-sep{width:1px; height:44px; background:var(--line);}

/* ---------- About ---------- */
.about{
  display:grid; grid-template-columns:.85fr 1fr; align-items:center; gap:0;
  max-width:1320px; margin:0 auto; padding:120px 32px;
}
.about-media{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);}
.about-media img{width:100%; height:100%; object-fit:cover; aspect-ratio:9/11;}
.about-content{padding-left:80px;}
.about-content h2{font-size:clamp(1.8rem,3vw,2.4rem);}
.link-arrow{
  display:inline-flex; align-items:center; gap:8px; font-size:.86rem; letter-spacing:.03em;
  color:var(--caramel-deep); font-weight:500; padding-bottom:2px; border-bottom:1px solid var(--caramel-deep);
  transition:gap .25s ease, opacity .25s ease;
}
.link-arrow:hover{gap:14px;}
.link-arrow.light{color:#EDE6D3; border-color:#EDE6D3;}
.link-arrow span{transition:transform .25s ease;}
.link-arrow.center{display:flex; width:max-content; margin:56px auto 0;}

/* ---------- Advantages ---------- */
.advantages{background:var(--sand); padding:100px 32px;}
.advantages-inner{
  max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:56px;
}
.advantage{text-align:left;}
.advantage-icon{
  display:flex; align-items:center; justify-content:center; width:56px; height:56px;
  border:1px solid var(--caramel); border-radius:50%; color:var(--caramel-deep); margin-bottom:24px;
}
.advantage-icon svg{width:26px; height:26px;}
.advantage h3{font-size:1.12rem; margin-bottom:.5em;}
.advantage p{font-size:.94rem;}

/* ---------- Partners ---------- */
.partners{padding:90px 32px 70px; text-align:center;}
.partners-row{
  display:flex; align-items:center; justify-content:center; gap:26px; flex-wrap:wrap;
  font-family:var(--ff-display); font-size:1.4rem; color:var(--ink); letter-spacing:.01em;
}
.partner-name{opacity:.82;}
.partner-sep{color:var(--azur); opacity:.7; font-family:var(--ff-body);}

/* ---------- Services ---------- */
.services{max-width:1320px; margin:0 auto; padding:60px 32px 130px;}
.section-head{text-align:center; max-width:640px; margin:0 auto 60px;}
.section-head h2{font-size:clamp(1.9rem,3vw,2.5rem);}
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.service-card{
  background:var(--white); border-radius:var(--radius); overflow:hidden;
  box-shadow:0 1px 0 var(--line); transition:transform .35s ease, box-shadow .35s ease;
}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.service-media{aspect-ratio:1/1; overflow:hidden;}
.service-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.service-card:hover .service-media img{transform:scale(1.06);}
.service-body{padding:24px 22px 28px;}
.service-body h3{font-size:1.12rem; margin-bottom:.4em;}
.service-body p{font-size:.88rem; min-height:2.6em;}
.service-price{
  display:inline-block; margin-top:10px; font-family:var(--ff-body); font-size:.78rem;
  letter-spacing:.05em; color:var(--caramel-deep); font-weight:500;
}

/* ---------- BR teaser ---------- */
.br-teaser{
  background:var(--sand); color:var(--ink); padding:130px 32px; text-align:center; position:relative;
}
.br-teaser::before, .br-teaser::after{content:''; position:absolute; left:0; right:0; height:1px; background:var(--line);}
.br-teaser::before{top:0;} .br-teaser::after{bottom:0;}
.br-inner{max-width:660px; margin:0 auto;}
.br-teaser h2{color:var(--ink); font-size:clamp(2rem,3.6vw,2.8rem); font-weight:400;}
.br-teaser p{color:var(--ink-soft);}

/* ---------- Testimonials ---------- */
.testimonials{padding:120px 32px 60px; text-align:center;}
.testi-grid{
  max-width:1180px; margin:56px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:40px; text-align:left; align-items:stretch;
}
.testi{margin:0; padding:0 0 0 22px; border-left:2px solid var(--azur); display:flex; flex-direction:column; height:100%;}
.testi blockquote{
  margin:0 0 16px; font-family:var(--ff-display); font-size:1.1rem; line-height:1.55; color:var(--ink); font-weight:400; flex:1;
}
.testi figcaption{font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:auto;}
.testi-note{text-align:center; font-size:.76rem; color:var(--ink-soft); opacity:.7; margin-top:50px;}

/* ---------- CTA banner ---------- */
.cta-banner{position:relative; height:60vh; min-height:420px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--sand);}
.cta-banner img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.cta-scrim{position:absolute; inset:0; background:rgba(247,242,231,.7);}
.cta-content{position:relative; z-index:2; text-align:center; color:var(--ink);}
.cta-content h2{color:var(--ink); font-size:clamp(2rem,4vw,2.7rem);}
.cta-content p{color:var(--ink-soft); margin-bottom:1.8em;}

/* ---------- Footer ---------- */
footer{background:var(--white); color:var(--ink-soft); padding:90px 32px 0; border-top:1px solid var(--line);}
.footer-top{
  max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:50px; padding-bottom:70px;
  border-bottom:1px solid var(--line);
}
.footer-brand svg{height:64px; width:auto; margin-bottom:18px;}
.footer-brand svg path{fill:var(--ink);}
.footer-col h4{
  font-family:var(--ff-body); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); margin:0 0 18px; font-weight:500;
}
.footer-col h4.mt{margin-top:26px;}

.footer-col ul{list-style:none; margin:0; padding:0;}
.footer-col li{list-style:none; margin:0; padding:0;}
.footer-col a{display:block; font-size:.9rem; color:var(--ink-soft); margin-bottom:12px; transition:color .2s ease;}
.footer-col a:hover{color:var(--caramel-deep);}
.footer-col p{font-size:.9rem; color:var(--ink-soft); margin-bottom:10px;}
.muted{opacity:.6; font-style:normal; display:inline-block; padding-right:6px;}
.social-row{display:flex; gap:12px; margin-top:20px;}
.social-btn{
  width:42px; height:42px; border:1.5px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--ink);
  transition:border-color .2s ease, background .2s ease;
}
.social-btn:hover{border-color:var(--caramel); background:var(--cream);}
.social-btn svg{width:20px; height:20px;}
.footer-bottom{
  max-width:1320px; margin:0 auto; padding:26px 0; display:flex; justify-content:space-between;
  font-size:.76rem; color:var(--ink-soft); flex-wrap:wrap; gap:10px;
}
.footer-links a{margin:0 4px;}
.footer-links a:hover{color:var(--caramel-deep);}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .nav{display:none;}
  .burger{display:flex;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .advantages-inner{grid-template-columns:1fr; gap:44px;}
  .testi-grid{grid-template-columns:1fr; gap:36px;}
  .about{grid-template-columns:1fr; gap:44px; padding:80px 32px;}
  .about-content{padding-left:0;}
  .footer-top{grid-template-columns:1fr 1fr; row-gap:44px;}
}
@media (max-width:640px){
  .header-inner{padding:14px 20px;}
  .lang-switch{display:none;}
  .hero-content{padding:0 20px 64px;}
  .hero h1{max-width:100%;}
  .stats-inner{gap:0; flex-direction:column;}
  .stat{width:100%; padding:18px 22px; border-bottom:1px solid var(--line);}
  .stat:last-child{border-bottom:none;}
  .stat-sep{display:none;}
  .services-grid{grid-template-columns:1fr;}
  .partners-row{font-size:1.1rem; gap:14px;}
  .br-teaser{padding:90px 24px;}
  .footer-top{grid-template-columns:1fr; padding-bottom:44px;}
  .about{padding:70px 20px;}
  .advantages{padding:70px 20px;}
  .services{padding:40px 20px 90px;}
  .testimonials{padding:80px 20px 40px;}
}


/* ---------- Recovered page-specific styles (About, Services, BR, Certificates, Gallery, Contact) ---------- */
#site-header.transparent-top{background:transparent; border-bottom-color:transparent;}

#site-header.transparent-top .logo svg path{fill:#FBF8F0;}

#site-header.transparent-top .nav a{color:#FBF8F0;}

#site-header.transparent-top .lang{color:#E7DFC9;}

#site-header.transparent-top .lang.active{color:#FBF8F0;}

#site-header.transparent-top .burger span{background:#FBF8F0;}

.page-banner{position:relative; height:44vh; min-height:340px; max-height:480px; display:flex; align-items:flex-end; overflow:hidden;}

.page-banner img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}

.page-banner-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(247,242,231,.10) 0%, rgba(43,30,25,.36) 100%);}

.page-banner-content{position:relative; z-index:2; padding:0 32px 46px; max-width:1320px; margin:0 auto; width:100%;}

.page-banner h1{color:#FBF8F0; font-size:clamp(2rem,4vw,3.2rem);}

.breadcrumb{color:#D9CCB2; font-size:.8rem; margin-bottom:14px;}

.breadcrumb a{color:#EADFC2;}

.breadcrumb a:hover{color:#fff;}

.section{max-width:1320px; margin:0 auto; padding:110px 32px;}

.section-tight{padding-top:60px; padding-bottom:60px;}

.section-head.center{text-align:center;}

.section-dark{background:var(--sand); color:var(--ink);}

.section-dark h2, .section-dark h3{color:var(--ink);}

.section-dark p{color:var(--ink-soft);}

.section-sand{background:var(--sand); padding-left:32px; padding-right:32px;}

.two-col{display:grid; grid-template-columns:.85fr 1fr; gap:80px; align-items:center;}

.two-col.reverse{grid-template-columns:1fr .85fr;}

.two-col.reverse .col-media{order:2;}

.col-media img{border-radius:var(--radius); box-shadow:var(--shadow); width:100%; object-fit:cover; aspect-ratio:9/11;}

.quote-block{max-width:760px; margin:0 auto; text-align:center;}

.quote-block .mark{font-family:var(--ff-display); font-size:3.4rem; color:var(--azur); line-height:1; display:block; margin-bottom:.2em;}

.quote-block blockquote{font-family:var(--ff-display); font-size:1.5rem; line-height:1.5; color:var(--ink); margin:0 0 .7em;}

.quote-block figcaption{font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft);}

.brand-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:30px; max-width:1180px; margin:0 auto;}

.brand-card{background:var(--white); padding:38px 32px; border-radius:var(--radius); box-shadow:0 1px 0 var(--line); display:flex; flex-direction:column;}

.brand-card h3{font-size:1.3rem; margin-bottom:.5em;}

.brand-card p{font-size:.92rem;}

.brand-card .tag{display:inline-block; margin-top:auto; padding-top:10px; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--caramel-deep);}

.price-tabs{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:56px;}

.price-tab{padding:10px 20px; border:1px solid var(--line); border-radius:999px; font-size:.8rem; letter-spacing:.03em; color:var(--ink-soft); cursor:pointer; transition:all .25s ease; background:transparent;}

.price-tab.active, .price-tab:hover{border-color:var(--caramel); color:var(--caramel-deep); background:var(--white);}

.price-category{max-width:820px; margin:0 auto 84px;}

.price-category:last-child{margin-bottom:0;}

.price-cat-head{display:flex; align-items:baseline; gap:16px; margin-bottom:26px; border-bottom:1px solid var(--line); padding-bottom:14px;}

.price-cat-head h3{font-size:1.3rem; margin:0;}

.price-cat-head span{font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--caramel-deep);}

.price-subgroup-head{font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--caramel-deep); font-weight:600; margin:28px 0 8px;}

.price-subgroup-head:first-child{margin-top:0;}

.price-row{display:flex; justify-content:space-between; gap:24px; padding:13px 0; border-bottom:1px dashed var(--line); font-size:.95rem;}

.price-row:last-child{border-bottom:none;}

.price-row .name{color:var(--ink);}

.price-row .sub{display:block; font-size:.78rem; color:var(--ink-soft); margin-top:2px;}

.price-row .amount{color:var(--caramel-deep); font-weight:500; white-space:nowrap;}

.price-note{max-width:820px; margin:40px auto 0; text-align:center; font-size:.85rem; color:var(--ink-soft); font-style:italic;}

.gal-filters{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:50px;}

.gal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}

.gal-grid img{width:100%; height:100%; object-fit:cover; aspect-ratio:1/1; border-radius:var(--radius); transition:transform .4s ease, filter .4s ease; cursor:pointer;}

.gal-grid img:hover{transform:scale(1.02); filter:brightness(1.04);}

.gal-item.tall img{aspect-ratio:1/1.35;}

.gal-item.tall{grid-row:span 1;}

.video-block{position:relative; max-width:1100px; margin:70px auto 0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:16/9;}

.video-block img{width:100%; height:100%; object-fit:cover;}

.video-block .play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(28,19,14,.28);}

.play-btn{width:76px; height:76px; border-radius:50%; background:rgba(251,248,240,.92); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.3); transition:transform .25s ease;}

.video-block:hover .play-btn{transform:scale(1.08);}

.play-btn svg{width:22px; height:22px;}

.social-teaser{text-align:center; margin-top:80px;}

.social-teaser .handle{font-family:var(--ff-display); font-size:1.6rem; margin-bottom:.3em; display:block;}

.gift-hero{background:var(--sand); color:var(--ink); text-align:center; padding:110px 32px;}

.gift-hero h2{color:var(--ink); font-size:clamp(2rem,3.6vw,2.8rem);}

.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:40px; max-width:1000px; margin:0 auto;}

.step{text-align:center;}

.step-num{font-family:var(--ff-display); font-size:2.2rem; color:var(--caramel); display:block; margin-bottom:.3em;}

.step h3{font-size:1.05rem; margin-bottom:.4em;}

.step p{font-size:.9rem;}

.occasion-row{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:50px;}

.occasion-chip{padding:10px 22px; border:1px solid var(--line); border-radius:999px; font-size:.82rem; color:var(--ink-soft);}

.notice-box{max-width:680px; margin:56px auto 0; padding:26px 30px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); text-align:center;}

.notice-box p{margin:0; font-size:.9rem;}

.promo-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:900px; margin:0 auto;}

.promo-card{background:var(--white); border-left:3px solid var(--caramel); padding:28px 30px; border-radius:var(--radius);}

.promo-card h3{font-size:1.05rem; margin-bottom:.4em;}

.promo-card p{font-size:.88rem; margin:0;}

.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; max-width:1180px; margin:0 auto;}

.info-row{display:flex; gap:16px; padding:20px 0; border-bottom:1px solid var(--line);}

.info-row:last-child{border-bottom:none;}

.info-icon{width:38px; height:38px; border-radius:50%; border:1px solid var(--caramel); display:flex; align-items:center; justify-content:center; color:var(--caramel-deep); flex-shrink:0;}

.info-icon svg{width:18px; height:18px;}

.info-row h4{margin:0 0 4px; font-size:.9rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink); font-weight:500;}

.info-row p{margin:0; font-size:.94rem;}

.map-placeholder{position:relative; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden; background:
  linear-gradient(135deg, #D8C6AA 25%, transparent 25%) -10px 0/20px 20px,
  linear-gradient(225deg, #D8C6AA 25%, transparent 25%) -10px 0/20px 20px,
  linear-gradient(315deg, #D8C6AA 25%, transparent 25%) 0px 0/20px 20px,
  linear-gradient(45deg, #D8C6AA 25%, #cdb995 25%) 0px 0/20px 20px;
  background-color:#e2d3b8; display:flex; align-items:center; justify-content:center; margin-top:36px;}

.map-pin{background:var(--ink); color:#EDE6D3; padding:10px 18px; border-radius:999px; font-size:.78rem; letter-spacing:.05em; box-shadow:var(--shadow); display:flex; align-items:center; gap:8px;}

.map-pin svg{width:14px; height:14px;}

.landmarks{display:flex; gap:30px; margin-top:20px; flex-wrap:wrap;}

.landmark{display:flex; align-items:center; gap:10px; font-size:.86rem; color:var(--ink-soft);}

.landmark svg{width:16px; height:16px; color:var(--caramel-deep); flex-shrink:0;}

.contact-form{background:var(--white); padding:44px; border-radius:var(--radius); box-shadow:0 1px 0 var(--line);}

.form-row{margin-bottom:20px;}

.form-row label{display:block; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;}

.form-row input, .form-row textarea{width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--cream); border-radius:var(--radius); font-family:var(--ff-body); font-size:.92rem; color:var(--ink);}

.form-row textarea{min-height:110px; resize:vertical;}

.form-row input:focus, .form-row textarea:focus{outline:none; border-color:var(--caramel);}

.booking-panel{background:var(--sand); color:var(--ink); padding:44px; border-radius:var(--radius); text-align:center;}

.booking-panel h3{color:var(--ink); font-size:1.3rem;}

.booking-panel p{color:var(--ink-soft); font-size:.9rem;}

.booking-panel .btn-primary{margin-top:10px;}

.planity-note{margin-top:14px; font-size:.76rem; color:var(--ink-soft); opacity:.85;}

.site-footer{background:var(--white); color:var(--ink-soft); padding:90px 32px 0; border-top:1px solid var(--line);}

.sf-grid{max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:50px; padding-bottom:70px; border-bottom:1px solid var(--line);}

.sf-brand svg{height:64px; width:auto; margin-bottom:18px; display:block;}

.sf-brand svg path{fill:var(--ink);}

.sf-tagline{font-size:.9rem; color:var(--ink-soft); margin:0 0 20px; line-height:1.5;}

.sf-social{display:flex; align-items:center; gap:10px; font-size:.85rem;}

.sf-social a{color:var(--ink); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--line); transition:text-decoration-color .2s ease, color .2s ease;}

.sf-social a:hover{text-decoration-color:var(--caramel); color:var(--caramel-deep);}

.sf-dot{color:var(--ink-soft); opacity:.5;}

.sf-col h4{font-family:var(--ff-body); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); margin:0 0 18px; font-weight:500;}

.sf-col h4.mt{margin-top:26px;}

.sf-col a{display:block; font-size:.9rem; color:var(--ink-soft); margin-bottom:12px; text-decoration:none; transition:color .2s ease;}

.sf-col a:hover{color:var(--caramel-deep);}

.sf-col p{font-size:.9rem; color:var(--ink-soft); margin-bottom:10px; line-height:1.55;}

.sf-bottom{max-width:1320px; margin:0 auto; padding:26px 0; display:flex; justify-content:space-between; font-size:.76rem; color:var(--ink-soft); flex-wrap:wrap; gap:10px;}

.sf-bottom-links a{margin:0 4px; color:var(--ink-soft); text-decoration:none;}

.sf-bottom-links a:hover{color:var(--caramel-deep);}

.price-subhead{font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--caramel-deep); margin:30px 0 6px; font-weight:500;}

.price-category .price-subhead:first-of-type{margin-top:0;}

/* ---------- Mobile fixes for page-specific sections (About/BR two-col, Gallery, Certificates steps, Offers promo cards, Contact, Footer sf-grid) ---------- */
@media (max-width:900px){
  .two-col{grid-template-columns:1fr; gap:32px;}
  .two-col.reverse{grid-template-columns:1fr;}
  .two-col.reverse .col-media{order:0;}
  .brand-cards{grid-template-columns:repeat(2,1fr); gap:20px;}
  .gal-grid{grid-template-columns:repeat(2,1fr); gap:14px;}
  .steps{grid-template-columns:1fr; gap:28px; max-width:100%;}
  .promo-grid{grid-template-columns:1fr; gap:18px; max-width:100%;}
  .contact-grid{grid-template-columns:1fr; gap:36px; max-width:100%;}
  .sf-grid{grid-template-columns:1fr 1fr; gap:30px;}
  .section-sand{padding-left:20px; padding-right:20px;}
  .page-banner{height:32vh; min-height:220px;}
  .contact-form{padding:28px;}
  .gift-hero{padding:70px 20px;}
  .quote-block blockquote{font-size:1.2rem;}
  .quote-block .mark{font-size:2.4rem;}
}
@media (max-width:640px){
  .two-col{gap:24px;}
  .brand-cards{grid-template-columns:1fr; gap:16px;}
  .gal-grid{grid-template-columns:1fr 1fr; gap:10px;}
  .sf-grid{grid-template-columns:1fr; gap:26px;}
  .col-media img{aspect-ratio:4/3;}
  .video-block .play-btn, .play-btn{width:56px; height:56px;}
  .play-btn svg{width:16px; height:16px;}
  .landmarks{gap:16px;}
  .contact-form{padding:22px;}
}
@media (max-width:420px){
  .gal-grid{grid-template-columns:1fr;}
}
