
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Montserrat:wght@300;400;500;600&display=swap');

:root{
  --rose:#c7b0b5;
  --rose-deep:#a98990;
  --rose-soft:#e5d6d9;
  --ink:#393230;
  --muted:#6f6663;
  --line:#eadfe1;
  --paper:#fbf8f7;
  --paper-2:#f3eded;
  --white:#ffffff;
  --shadow:0 12px 40px rgba(68,39,44,.08);
  --radius:24px;
  --max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Montserrat", Arial, sans-serif;
  color:var(--ink);
  background-image:url('../img/page_bkgnd.jpg');
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
  background-repeat:no-repeat;
  line-height:1.65;
  position:relative;
  min-height:100vh;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0 0 1rem}
h1,h2,h3,h4{
  font-family:"Montserrat", Arial, sans-serif;
  font-weight:500;
  line-height:1.08;
  margin:0 0 1rem;
}
/*h1{font-size:clamp(2.75rem,6vw,5rem)}*/
h2{font-size:clamp(2rem,4vw,3.3rem)}
h1 {
    font-size: clamp(2rem,4vw,3.3rem)
}
h3{font-size:clamp(1.45rem,2vw,2rem)}
.container{width:min(calc(100% - 2rem), var(--max)); margin:0 auto}
.section{padding:4.5rem 0; position:relative}
.section::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(251,248,247,0.85);
  z-index:-1;
}
.section-alt::before{
  background:rgba(243,237,237,0.9);
}
.eyebrow{
  display:inline-flex; gap:.5rem; align-items:center;
  text-transform:uppercase; letter-spacing:.2em; font-size:.72rem;
  color:var(--rose-deep); margin-bottom:1rem;
}
.eyebrow::before{
  content:""; width:2.5rem; height:1px; background:var(--rose-deep); display:inline-block;
}
.lead{font-size:1.05rem; color:var(--muted)}
.btn, button.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.95rem 1.25rem; border-radius:999px;
  border:1px solid var(--rose-deep); background:var(--white);
  color:var(--ink); cursor:pointer; font:inherit; transition:.2s ease;
}
.btn:hover, button.btn:hover{transform:translateY(-1px); box-shadow:var(--shadow)}
.btn-primary{background:var(--rose); color:#fff; border-color:var(--rose)}
.btn-primary:hover:not(:disabled){transform:translateY(-1px); box-shadow:var(--shadow)}
.btn-primary:disabled{
  background:var(--muted);
  color:var(--line);
  border-color:var(--line);
  cursor:not-allowed;
  opacity:0.6;
}
.btn-secondary{background:transparent}

.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(254,248,247,.85);
  backdrop-filter: blur(4px);
  border-bottom:1px solid rgba(199,176,181,.25);
}
.header-inner{
  min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.brand{
  display:flex; align-items:center; gap:.85rem; min-width:0;
}
.brand img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: 0%;
    background: transparent;
    box-shadow: 0 4px 18px rgba(0,0,0,.0);
    opacity: 0.6;
}
.brand-text{
  display:flex; flex-direction:column; line-height:1.05;
}
.brand-text strong {
    font-family: "Arial", sans-serif;
    letter-spacing: .08rem;
    text-transform: uppercase;
    font-size: 0.9rem;
    opacity: 0.65;
    color: var(--ink);
}
.brand-text span {
    letter-spacing: .18em;
    text-transform: uppercase;
    font-size: 0.68em;
    color: var(--muted);
}
.nav-toggle{
  display:none; border:0px solid var(--line); background:transparent; border-radius:14px;
  padding:.75rem .95rem; font:inherit;
  opacity: 0.65; cursor:pointer;
}
.nav-links{
  display:flex; align-items:center; gap:1.3rem; flex-wrap:wrap;
}
.nav-links a{
  font-size:.87rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); padding:.4rem 0;
  position:relative;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:-4px; width:100%; height:1px;
  background:var(--rose-deep); transform:scaleX(0); transform-origin:left; transition:.2s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{transform:scaleX(1)}

.hero{
  position:relative;
  min-height:95vh;
  display:grid; align-items:center;
  color:#fff;
  overflow:hidden;
}
.hero-content{
  position:relative; z-index:2;
  padding:4rem 0;
  text-align:center;
}
.hero-logo{
  display:flex;
  justify-content:center;
  align-items:center;
}
.hero-logo img{
  width:min(640px,80vw);
  height:auto;
  filter:drop-shadow(0 12px 48px rgba(0,0,0,0.0));
  opacity:0.10;
  animation:heroFadeIn 1.2s ease-out forwards;
}

@keyframes heroFadeIn{
  0%{
    opacity:0;
    transform:scale(0.8) translateY(30px);
    filter:drop-shadow(0 12px 48px rgba(0,0,0,0));
  }
  50%{
    opacity:0.7;
    transform:scale(0.95) translateY(10px);
  }
  100%{
    opacity:0.95;
    transform:scale(1) translateY(0);
    filter:drop-shadow(0 12px 48px rgba(0,0,0,0.25));
  }
}

.feature-grid,.service-grid,.gallery-grid,.testimonial-grid,.info-grid,.contact-grid,.stats-grid{
  display:grid; gap:1.3rem;
}
.feature-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.testimonial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.info-grid,.contact-grid{grid-template-columns:1.1fr .9fr}
.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{
  background:rgba(255,255,255,.88);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.card-pad{padding:1.5rem}
.icon-card{text-align:center}
.icon-card img{width:108px;height:108px;margin:1.2rem auto .75rem}
.icon-card p{color:var(--muted); font-size:.95rem}
.soft-panel{
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.82));
  border:1px solid var(--line); border-radius:32px; padding:2rem; box-shadow:var(--shadow);
}
.section-alt{
  background:
    linear-gradient(180deg, rgba(199,176,181,.13), rgba(255,255,255,.55));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:center;
}
.media-frame{
  border-radius:28px; overflow:hidden; box-shadow:var(--shadow);
  min-height:420px; background:#ddd;
}
.media-frame img{width:100%; height:100%; object-fit:cover}
.about-portrait-frame{
  height:clamp(420px, 42vw, 520px);
}
.booking-process-image{
  height:clamp(420px, 48vw, 560px);
}
.booking-process-image img{
  height:100%;
  object-position:center;
}
.photo-card{
  position:relative; overflow:hidden; border-radius:24px; min-height:320px; background:#ddd;
}
.photo-card img{width:100%; height:100%; object-fit:cover; transition:transform .35s ease}
.photo-card:hover img{transform:scale(1.03)}
.photo-card figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:1rem 1rem 1.1rem;
  color:#fff;
  background:linear-gradient(180deg, transparent, rgba(23,18,20,.82));
  font-size:.92rem;
}
.mosaic{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem;
}
.mosaic .photo-card{min-height:220px}
.quote{
  font-size:1.02rem; color:var(--ink);
}
.quote::before{
  content:"“"; font-family:"Cormorant Garamond", Georgia, serif;
  font-size:3rem; line-height:0; color:var(--rose-deep); vertical-align:-.45em; margin-right:.15rem;
}
.quote-source{
  color:var(--muted); text-transform:uppercase; letter-spacing:.13em; font-size:.76rem;
}
.process-steps{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem;
}
.step{
  position:relative; padding:1.5rem; background:#fff; border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow);
}
.step-num{
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  background:var(--rose); color:#fff; font-weight:600; margin-bottom:1rem;
}
.list-clean{list-style:none; margin:0; padding:0}
.list-clean li{padding:.55rem 0; border-bottom:1px solid rgba(199,176,181,.28)}
.list-clean li:last-child{border-bottom:0}
.contact-card .mini{
  color:var(--muted); font-size:.9rem;
}
.contact-social-links{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:1rem;
}
.contact-social-link svg{
  width:20px;
  height:20px;
  fill:currentColor;
  flex:0 0 auto;
}
.fake-form{
  display:grid; gap:.9rem;
}
.fake-form label{
  display:grid; gap:.35rem; font-size:.84rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.fake-form input,.fake-form textarea,.fake-form select{
  width:100%; padding:1rem 1rem; border-radius:18px; border:1px solid var(--line); background:#fff;
  font:inherit; resize:vertical; min-height:58px;
}
.fake-form textarea{min-height:160px}
.fake-form select{
  resize:none; 
  cursor:pointer;
  appearance:none;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position:right 0.75rem center;
  background-repeat:no-repeat;
  background-size:1.5em 1.5em;
  padding-right:2.5rem;
}
.field-error{
  color:#d32f2f;
  font-size:0.75rem;
  margin-top:0.25rem;
  display:none;
}
.field-error.show{
  display:block;
}
.fake-form input.error,
.fake-form textarea.error,
.fake-form select.error{
  border-color:#d32f2f;
  background-color:#fff8f8;
}
.fake-form label.error-text{
  color:#d32f2f;
}
.form-note{
  padding:1rem 1rem; border-radius:18px; background:rgba(199,176,181,.15); border:1px solid var(--line); color:var(--ink);
  transition: all 0.3s ease;
}
.form-note.success{
  background:rgba(76, 175, 80, 0.15);
  border-color:rgba(76, 175, 80, 0.3);
}
.form-note.error{
  background:rgba(244, 67, 54, 0.15);
  border-color:rgba(244, 67, 54, 0.3);
}
.form-note strong{
  display:block;
  margin-bottom:0.5rem;
  font-size:0.95rem;
}
.form-note a{
  color:var(--rose-deep);
  text-decoration:underline;
}
.form-note a:hover{
  text-decoration:none;
}
.video-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem}
.video-card{
  position:relative; min-height:280px; border-radius:28px; overflow:hidden; box-shadow:var(--shadow); display:block;
}
.video-card img{width:100%; height:100%; object-fit:cover}
.video-card .play{
  position:absolute; inset:auto auto 1rem 1rem;
  width:64px; height:64px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.85); color:var(--ink); font-size:1.15rem; box-shadow:var(--shadow);
}
.video-card .video-label{
  position:absolute; left:1rem; right:1rem; bottom:1rem; padding-left:5rem;
  color:#fff; font-weight:500; text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.gallery-panel{
  background:rgba(255,255,255,.94);
}
.curated-heading{
  margin-bottom:1.4rem;
}
.curated-gallery{
  margin:0 0 2.4rem;
}
.curated-gallery .photo-card figcaption{
  padding:3rem 1rem 1.1rem;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,.58) 42%,
    rgba(0,0,0,.94) 100%
  );
  font-weight:500;
  text-shadow:0 1px 8px rgba(0,0,0,.45);
}
.gallery-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:1rem;
  margin-bottom:1.8rem;
}
.creation-status{
  margin:0 0 1rem;
  color:var(--muted);
  font-size:.9rem;
}
.creation-wall{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:.85rem;
}
.creation-thumb{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1;
  padding:0;
  border:1px solid rgba(234,223,225,.85);
  border-radius:14px;
  overflow:hidden;
  background:rgba(255,255,255,.72);
  cursor:pointer;
  box-shadow:0 8px 24px rgba(68,39,44,.07);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.creation-thumb:hover,
.creation-thumb:focus-visible{
  transform:translateY(-2px);
  border-color:var(--rose-deep);
  box-shadow:0 12px 30px rgba(68,39,44,.12);
  outline:0;
}
.creation-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.creation-thumb-badge{
  position:absolute;
  right:.55rem;
  bottom:.55rem;
  padding:.25rem .5rem;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:var(--ink);
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 4px 14px rgba(0,0,0,.12);
}
.creation-controls{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.7rem;
  margin-top:1.6rem;
}
.creation-controls[hidden]{
  display:none;
}
.creation-controls .btn:disabled{
  cursor:not-allowed;
  opacity:.45;
  transform:none;
  box-shadow:none;
}
.creation-dialog{
  width:min(1120px, calc(100vw - 2rem));
  max-height:calc(100dvh - 2rem);
  padding:0;
  border:0;
  border-radius:18px;
  background:var(--white);
  box-shadow:0 24px 80px rgba(34,24,26,.32);
  overflow:hidden;
}
.creation-dialog::backdrop{
  background:rgba(251,248,247,.72);
  backdrop-filter:blur(3px);
}
.creation-dialog-actions{
  position:absolute;
  top:max(.75rem, env(safe-area-inset-top));
  right:max(.75rem, env(safe-area-inset-right));
  z-index:2;
  display:flex;
  gap:.45rem;
}
.creation-dialog-action{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.65);
  border-radius:50%;
  background:rgba(255,255,255,.9);
  color:var(--ink);
  cursor:pointer;
  font:inherit;
  font-size:0;
  line-height:0;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.creation-dialog-action:disabled{
  cursor:not-allowed;
  opacity:.45;
}
.creation-dialog-action svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
}
.creation-dialog-body{
  display:grid;
  place-items:center;
  width:100%;
  min-height:min(720px, calc(100dvh - 2rem));
  background:var(--white);
}
.creation-dialog-body img,
.creation-dialog-body video{
  display:block;
  width:100%;
  max-height:calc(100dvh - 2rem);
  object-fit:contain;
}
body.dialog-open{
  overflow:hidden;
}
.carousel-heading{
  max-width:760px;
  margin-bottom:1.4rem;
}
.carousel-panel{
  background:rgba(255,255,255,.9);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:2rem;
}
.media-carousel{
  display:grid;
  gap:1rem;
}
.media-carousel-stage{
  position:relative;
  min-height:clamp(320px,58vh,660px);
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:hidden;
}
.carousel-card{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  margin:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
}
.carousel-card.is-active{
  opacity:1;
  pointer-events:auto;
}
.carousel-media{
  width:100%;
  height:100%;
  min-height:0;
  min-width:0;
  display:grid;
  place-items:center;
  background:transparent;
  overflow:hidden;
}
.carousel-media img,
.carousel-media video{
  width:100%;
  height:100%;
  max-height:100%;
  min-width:0;
  min-height:0;
  object-fit:contain;
  background:transparent;
}
.carousel-caption{
  padding:1rem 1.25rem 1.15rem;
  background:transparent;
  border:0;
  text-align:center;
  text-shadow:
    0 1px 0 rgba(255,255,255,.95),
    0 0 12px rgba(255,255,255,.92),
    0 0 26px rgba(255,255,255,.88);
}
.carousel-caption h3{
  margin-bottom:.35rem;
  font-size:1.35rem;
  font-weight:600;
}
.carousel-caption p{
  margin:0;
  color:var(--ink);
  font-weight:500;
}
.media-carousel-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
}
.media-carousel-controls[hidden],
.carousel-empty[hidden]{
  display:none;
}
.carousel-arrow{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid rgba(169,137,144,.45);
  border-radius:50%;
  background:rgba(255,255,255,.62);
  color:var(--ink);
  cursor:pointer;
  font:inherit;
  box-shadow:0 4px 16px rgba(68,39,44,.08);
  transition:.2s ease;
}
.carousel-arrow:hover{
  transform:translateY(-1px);
  border-color:var(--rose-deep);
  background:rgba(255,255,255,.9);
  box-shadow:0 8px 24px rgba(68,39,44,.1);
}
.carousel-arrow svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.carousel-dots{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.45rem;
}
.carousel-dot{
  width:12px;
  height:12px;
  border:0;
  border-radius:50%;
  background:var(--rose-soft);
  cursor:pointer;
  padding:0;
}
.carousel-dot.is-active{
  background:var(--rose-deep);
}
.carousel-empty{
  margin:0;
  padding:1rem 1.25rem;
  border:1px dashed var(--rose-deep);
  border-radius:18px;
  background:rgba(255,255,255,.82);
  color:var(--muted);
}
.footer{
  background:#f6efef; border-top:1px solid var(--line); margin-top:4rem;
}
.footer-grid{
  display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:1.5rem;
  padding:3rem 0;
}
.footer small,.muted{color:var(--muted)}
.footer h4{font-size:1.5rem}
.footer-nav a{display:block; padding:.2rem 0; color:var(--muted)}
.tag{
  display:inline-block; padding:.45rem .7rem; border-radius:999px;
  background:rgba(199,176,181,.18); color:var(--ink); font-size:.82rem; margin:.2rem .35rem .2rem 0;
}
.notice{
  border-left:4px solid var(--rose-deep); padding:1rem 1rem 1rem 1.1rem;
  background:rgba(255,255,255,.72); border-radius:18px;
}
.holding-body{
  display:flex;
  flex-direction:column;
}
.holding-header .header-inner{
  justify-content:center;
}
.holding-page{
  flex:1;
  display:grid;
}
.holding-hero{
  min-height:calc(100vh - 82px);
  display:grid;
  align-items:center;
  padding:4rem 0;
  position:relative;
}
.holding-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(251,248,247,.8);
  z-index:-1;
}
.holding-layout{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  gap:2rem;
  align-items:center;
}
.holding-layout.container{
  width:100%;
  max-width:var(--max);
  padding:0 1rem;
}
.holding-copy{
  max-width:760px;
  min-width:0;
}
.holding-copy h1{
  max-width:720px;
  overflow-wrap:normal;
}
.holding-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  margin:1.75rem 0;
}
.holding-contact{
  max-width:560px;
  margin:0 0 1.5rem;
}
.holding-contact li{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:1rem;
  align-items:center;
}
.holding-contact span{
  color:var(--muted);
  font-size:.76rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.holding-contact a{
  overflow-wrap:anywhere;
}
.social-links{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
}
.social-link{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  min-height:48px;
  padding:.65rem .9rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  color:var(--ink);
  box-shadow:0 8px 28px rgba(68,39,44,.06);
  transition:.2s ease;
}
.social-link:hover{
  transform:translateY(-1px);
  border-color:var(--rose-deep);
  box-shadow:var(--shadow);
}
.social-link svg{
  width:22px;
  height:22px;
  fill:currentColor;
  flex:0 0 auto;
}
.footer-social-links{
  display:flex;
  gap:.55rem;
  margin-top:.8rem;
}
.footer-social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:50%;
  background:rgba(255,255,255,.82);
  color:var(--ink);
  transition:.2s ease;
}
.footer-social-link:hover{
  transform:translateY(-1px);
  border-color:var(--rose-deep);
  box-shadow:0 8px 24px rgba(68,39,44,.1);
}
.footer-social-link svg{
  width:17px;
  height:17px;
  fill:currentColor;
}
.holding-card{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.82));
  border:1px solid var(--line);
  border-radius:32px;
  box-shadow:var(--shadow);
  overflow:hidden;
  text-align:center;
}
.holding-card-image{
  width:100%;
  height:340px;
  object-fit:cover;
}
.holding-card-text{
  padding:1.75rem 2rem 2rem;
}
.holding-card-text p{
  color:var(--muted);
}
.holding-card-text small{
  color:var(--rose-deep);
  letter-spacing:.09em;
  text-transform:uppercase;
}
.reveal{opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease}
.reveal.is-visible{opacity:1; transform:none}

@media (max-width: 1200px){
  .holding-layout{
    grid-template-columns:1fr;
  }
}
@media (max-width: 980px){
  .feature-grid,.gallery-grid,.service-grid,.testimonial-grid,.info-grid,.contact-grid,.stats-grid,.split,.process-steps,.footer-grid,.video-grid{
    grid-template-columns:1fr;
  }
  .gallery-heading{
    display:grid;
    align-items:start;
  }
  .mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-logo img{width:min(450px,80vw)}
}
@media (max-width: 820px){
  .nav-toggle{display:block}
  .nav-links{
    display:none; position:absolute; top:82px; left:1rem; right:1rem;
    padding:1rem; background:rgba(255,255,255,.97); border:1px solid var(--line);
    border-radius:24px; box-shadow:var(--shadow);
  }
  .nav-links.open{display:grid}
}
@media (max-width: 640px){
  .section{padding:3.5rem 0}
  .creation-wall{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.7rem;
  }
  .creation-controls{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .creation-controls .btn{
    width:100%;
    padding:.8rem .75rem;
  }
  .creation-controls [data-creation-load-more]{
    grid-column:1 / -1;
  }
  .creation-dialog{
    width:calc(100vw - .75rem);
    max-height:calc(100dvh - .75rem);
    border-radius:16px;
  }
  .creation-dialog-actions{
    top:max(.5rem, env(safe-area-inset-top));
    right:max(.5rem, env(safe-area-inset-right));
  }
  .creation-dialog-body{
    min-height:0;
    max-height:calc(100dvh - .75rem);
  }
  .creation-dialog-body img,
  .creation-dialog-body video{
    max-height:calc(100dvh - .75rem);
  }
  .carousel-panel{
    padding:1.25rem;
  }
  .holding-layout.container{
    width:100vw;
    max-width:100vw;
    overflow:hidden;
  }
  .holding-copy{
    width:100%;
    max-width:100%;
  }
  .holding-hero{
    padding:2.75rem 0;
  }
  .holding-copy h1{
    font-size:1.85rem;
    line-height:1.12;
  }
  .holding-copy p{
    font-size:.95rem;
  }
  .holding-actions,
  .social-links{
    display:grid;
  }
  .holding-actions .btn,
  .social-link{
    width:100%;
  }
  .holding-contact li{
    grid-template-columns:1fr;
    gap:.1rem;
  }
  .holding-card{
    border-radius:26px;
  }
  .holding-card-image{
    height:260px;
  }
  .media-carousel-stage{
    min-height:420px;
  }
  .carousel-caption{
    padding:1rem;
  }
  .media-carousel-controls{
    gap:.55rem;
  }
  .carousel-arrow{
    width:42px;
    height:42px;
  }
  .holding-card-text{
    padding:1.35rem 1.5rem 1.5rem;
  }
  .mosaic{grid-template-columns:1fr}
  .hero-logo img{width:min(375px,80vw)}
}
