:root{
  --bg:#f9f3ef;
  --surface:#f3e4dc;
  --surface-soft:#f4e5dc;
  --ink:#3a2e2a;
  --muted:#8c7b75;
  --line:rgba(180,140,120,.15);
  --accent:#d7a392;
  --accent-strong:#c98d7a;
  --shadow:0 10px 30px rgba(180,140,120,.15);
  --radius:24px;
  --radius-sm:16px;
  --maxw:1180px;
  --font-display:"Cormorant Garamond", Georgia, serif;
  --font-body:"Manrope", ui-sans-serif, system-ui, sans-serif;
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(900px 500px at 0% 0%, rgba(255,255,255,.55), transparent 62%),
    linear-gradient(180deg, #fcf8f5 0%, #f9f3ef 45%, #f6ede7 100%);
  font-family:var(--font-body);
  line-height:1.65;
}

img{max-width:100%;display:block}

a{color:inherit}

.container{width:min(100% - 2rem, var(--maxw));margin-inline:auto}
.site-shell{width:calc(100% - 2rem);max-width:none;margin-inline:auto}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(12px);
  background:var(--surface);
  border-bottom:1px solid rgba(180,140,120,.15);
}

.nav{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:1rem;
  padding:.75rem 0;
}

.nav-actions{
  display:flex;
  align-items:center;
  gap:.75rem;
  justify-self:end;
}

.header-social-links{
  display:flex;
  align-items:center;
  gap:.55rem;
}

.brand{
  display:flex;
  align-items:center;
  gap:.9rem;
  text-decoration:none;
  font-weight:800;
}

.brand img{height:58px;width:auto}

.burger{
  display:none;
  width:46px;
  height:46px;
  padding:0;
  background:#fffaf7;
  border:1px solid rgba(217,152,130,.18);
  border-radius:10px;
  cursor:pointer;
  box-shadow:var(--shadow);
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.burger span{
  width:20px;
  height:2px;
  background:var(--ink);
  border-radius:999px;
  display:block;
  transition:transform .22s ease, opacity .22s ease;
}

.burger span + span{
  margin-top:4px;
}

.burger.active span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}

.burger.active span:nth-child(2){
  opacity:0;
}

.burger.active span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

.nav-links{
  display:flex;
  align-items:center;
  gap:.6rem;
  flex-wrap:wrap;
  justify-self:center;
}

.nav-links a{
  text-decoration:none;
  padding:.4rem .7rem;
  border-radius:999px;
  color:var(--muted);
  font-weight:600;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}

.nav-links a:hover{
  background:rgba(255,255,255,.75);
  color:var(--ink);
  transform:translateY(-1px);
}

.nav-links a.active{
  background:rgba(255,255,255,.75);
  color:var(--ink);
  transform:translateY(-1px);
}

.service-page-link,
.portfolio-page-link{
  display:none !important;
}

.nav-dropdown{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.nav-dropdown > a{
  margin-right:0;
}

.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + .3rem);
  left:50%;
  min-width:240px;
  padding:.5rem;
  border-radius:18px;
  background:rgba(255,250,247,.98);
  border:1px solid rgba(217,152,130,.2);
  box-shadow:0 22px 44px rgba(120,90,78,.14);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%, -10px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:140;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%, 0);
}

.nav-dropdown-menu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-.8rem;
  height:.8rem;
}

.nav-dropdown-menu a{
  display:block;
  margin:0;
  padding:.8rem .9rem;
  border-radius:14px;
  white-space:nowrap;
}

.nav-dropdown-menu a:hover{
  background:var(--surface);
}

.nav-icon-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0 !important;
}

.nav-icon-link svg{
  width:16px;
  height:16px;
}

.header-social-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:8px;
  color:#fff;
  box-shadow:0 8px 18px rgba(126,94,80,.14);
  transition:transform .2s ease, box-shadow .2s ease;
  flex-shrink:0;
}

.header-social-badge svg{
  width:14px;
  height:14px;
}

.header-social-badge--instagram{
  background:
    radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 10%, #fd5949 42%, #d6249f 66%, #285AEB 100%);
  box-shadow:0 8px 18px rgba(214,36,159,.22);
}

.header-social-badge--whatsapp{
  background:linear-gradient(180deg, #43d854 0%, #24b24a 100%);
  border-radius:999px;
  box-shadow:0 8px 18px rgba(37,211,102,.22);
}

.header-social-badge--whatsapp svg{
  width:15px;
  height:15px;
}

.header-social-badge--mail{
  background:linear-gradient(180deg, #d7a392 0%, #c98d7a 100%);
  box-shadow:0 8px 18px rgba(201,141,122,.2);
}

.instagram-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:8px;
  background:
    radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 10%, #fd5949 42%, #d6249f 66%, #285AEB 100%);
  color:#fff;
  box-shadow:0 8px 18px rgba(214,36,159,.22);
  transition:transform .2s ease, box-shadow .2s ease;
  flex-shrink:0;
}

.instagram-badge svg{
  width:14px;
  height:14px;
}

.nav-icon-link:hover .header-social-badge{
  transform:translateY(-1px) scale(1.04);
}

.nav-icon-link:hover .header-social-badge--instagram{
  box-shadow:0 12px 22px rgba(214,36,159,.26);
}

.nav-icon-link:hover .header-social-badge--whatsapp{
  box-shadow:0 12px 22px rgba(37,211,102,.28);
}

.nav-icon-link:hover .header-social-badge--mail{
  box-shadow:0 12px 22px rgba(201,141,122,.26);
}

.header-cta{
  padding:.78rem 1rem;
  white-space:nowrap;
}

.lang-switch{
  position:relative;
}

.lang-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.32rem;
  min-width:60px;
  height:50px;
  padding:0 .95rem;
  border-radius:18px;
  border:1px solid rgba(160,120,105,.14);
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow);
  color:var(--ink);
  font:700 .98rem/1 var(--font-body);
  cursor:pointer;
}

.lang-btn:hover{
  background:#fff;
}

.lang-btn:focus-visible{
  outline:2px solid rgba(201,141,122,.35);
  outline-offset:2px;
}

.lang-caret{
  font-size:.76rem;
  color:var(--muted);
}

.lang-menu{
  position:absolute;
  top:calc(100% + .45rem);
  right:0;
  min-width:72px;
  padding:.4rem;
  border-radius:18px;
  border:1px solid rgba(160,120,105,.14);
  background:rgba(255,250,247,.98);
  box-shadow:var(--shadow);
  display:grid;
  gap:.18rem;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.lang-menu.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

.lang-option{
  border:0;
  background:transparent;
  color:var(--muted);
  border-radius:12px;
  padding:.55rem .7rem;
  font:700 .92rem/1 var(--font-body);
  cursor:pointer;
}

.lang-option:hover,
.lang-option.active{
  background:rgba(215,163,146,.16);
  color:var(--ink);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  text-decoration:none;
  padding:.95rem 1.2rem;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:800;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.btn:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow);
}

.btn.primary{
  background:var(--accent);
  color:#fff;
}

.btn.secondary{
  background:rgba(255,255,255,.75);
  border-color:var(--line);
}

.btn.secondary[href*="#portfolio"]{
  background:var(--accent);
  color:#fff;
  border-color:transparent;
}

.hero{
  padding:4.8rem 0 3.4rem;
}

.breadcrumbs{
  padding:1rem 0 0;
  color:var(--muted);
  font-size:.92rem;
}

.breadcrumbs ol{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  padding:0;
  margin:0;
}

.breadcrumbs li{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}

.breadcrumbs li + li::before{
  content:"/";
  color:rgba(127,111,105,.7);
}

.hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.24fr) minmax(0, .76fr);
  gap:1.15rem;
  align-items:stretch;
}

.hero-grid > div{
  min-height:0;
}

.eyebrow{
  display:inline-flex;
  padding:.38rem .72rem;
  border-radius:999px;
  background:rgba(215,163,146,.16);
  color:var(--muted);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.hero h1,
.section-head h2,
.card h3,
.contact-card h2{
  margin:.8rem 0 1rem;
  font-family:var(--font-display);
  font-weight:600;
  line-height:.98;
}

.hero h1{
  font-size:clamp(2.2rem, 3.3vw, 3.35rem);
  max-width:none;
  text-wrap:pretty;
}

.lead{
  max-width:60ch;
  color:var(--muted);
  font-size:1.06rem;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:1.6rem;
}

.hero-points{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.8rem;
  margin-top:1.5rem;
}

.hero-points div{
  padding:1rem;
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.74);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  min-height:112px;
}

.hero-points strong{
  display:block;
  margin-bottom:.2rem;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}

.hero-visual{
  position:relative;
  align-self:stretch;
  overflow:hidden;
  border-radius:32px;
  border:1px solid rgba(255,255,255,.6);
  box-shadow:var(--shadow);
}

.hero-visual--lightbox{
  position:relative;
  cursor:zoom-in;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  outline:none;
}

.hero-visual--lightbox::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(58,46,42,0) 12%, rgba(58,46,42,.12) 100%);
  opacity:0;
  transition:opacity .28s ease;
  pointer-events:none;
}

.hero-visual--lightbox::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:56px;
  height:56px;
  border-radius:999px;
  background:
    rgba(255,255,255,.94)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a2e2a' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E")
    center/20px 20px no-repeat;
  box-shadow:0 14px 32px rgba(58,46,42,.18);
  opacity:0;
  transform:translate(-50%, -50%) scale(.88);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
}

.hero-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  aspect-ratio:auto;
  object-fit:cover;
  transition:transform .28s ease;
}

.hero-visual--lightbox:hover,
.hero-visual--lightbox:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(120,90,78,.18);
  border-color:rgba(217,152,130,.28);
}

.hero-visual--lightbox:hover::before,
.hero-visual--lightbox:hover::after,
.hero-visual--lightbox:focus-visible::before,
.hero-visual--lightbox:focus-visible::after{
  opacity:1;
}

.hero-visual--lightbox:hover::after,
.hero-visual--lightbox:focus-visible::after{
  transform:translate(-50%, -50%) scale(1);
}

.hero-visual--lightbox:hover img,
.hero-visual--lightbox:focus-visible img{
  transform:scale(1.03);
}

.hero-visual--lightbox:focus-visible{
  outline:2px solid rgba(217,152,130,.42);
  outline-offset:4px;
}

.about-page .hero-visual img{
  object-position:center 18%;
}

.newborn-page .hero-visual img{
  object-position:center 24%;
}

.family-page .hero-visual img{
  object-position:center 6% !important;
}

.about-page .about-section-head{
  display:block;
  text-align:left;
  margin-bottom:1.7rem;
}

.about-page .about-section-head h2{
  font-size:clamp(2.15rem, 3.8vw, 3.15rem);
}

.about-page .about-section-head p{
  max-width:62ch;
  text-align:left;
}

.about-page .about-story-wrap{
  display:block;
}

.about-page .about-story-card{
  width:100%;
  padding:clamp(1.65rem, 2.8vw, 2.3rem);
  margin:0;
}

.about-page .about-story-card h3{
  margin:0 0 .9rem;
  font-size:clamp(2rem, 3.4vw, 2.8rem);
  line-height:1;
  max-width:none;
}

.about-page .card-copy{
  max-width:none;
  color:var(--muted);
  font-size:1.03rem;
  line-height:1.9;
  text-wrap:pretty;
}

section{padding:3.4rem 0}

.section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1.4rem;
}

.section-head h2{font-size:clamp(2rem, 4vw, 3rem);margin:0}

.section-head p{margin:0;color:var(--muted);max-width:62ch}

.grid-2{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}

.card{
  background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,250,247,.96));
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:1.4rem;
}

.card h3{font-size:2rem;margin:0 0 .75rem}

.list{
  margin:0;
  padding-left:1.1rem;
}

.list li + li{margin-top:.45rem}

.timeline{
  display:grid;
  gap:.9rem;
}

.timeline .step{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  align-items:start;
}

.timeline .num{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-weight:800;
}

.cta-band{
  padding:2rem;
  border-radius:32px;
  background:
    radial-gradient(220px 160px at 100% 0%, rgba(215,163,146,.28), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(243,228,220,.85));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.cta-band p{color:var(--muted);max-width:60ch}

.faq-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}

.gallery-showcase{
  padding-top:0;
}

.gallery-showcase .section-head p{
  max-width:none;
}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:1rem;
}

.gallery-item{
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:28px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:rgba(255,255,255,.82);
  aspect-ratio:4/4.8;
  cursor:zoom-in;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  outline:none;
}

.gallery-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(58,46,42,0) 12%, rgba(58,46,42,.12) 100%);
  opacity:0;
  transition:opacity .28s ease;
  pointer-events:none;
}

.gallery-item::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:52px;
  height:52px;
  border-radius:999px;
  background:
    rgba(255,255,255,.94)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a2e2a' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E")
    center/20px 20px no-repeat;
  box-shadow:0 14px 32px rgba(58,46,42,.18);
  opacity:0;
  transform:translate(-50%, -50%) scale(.88);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
}

.gallery-item img{
  width:100%;
  height:100%;
  display:block;
  aspect-ratio:auto;
  object-fit:cover;
  transition:transform .28s ease;
}

.gallery-item:hover,
.gallery-item:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(120,90,78,.18);
  border-color:rgba(217,152,130,.28);
}

.gallery-item:hover::before,
.gallery-item:hover::after,
.gallery-item:focus-visible::before,
.gallery-item:focus-visible::after{
  opacity:1;
}

.gallery-item:hover::after,
.gallery-item:focus-visible::after{
  transform:translate(-50%, -50%) scale(1);
}

.gallery-item:hover img,
.gallery-item:focus-visible img{
  transform:scale(1.03);
}

.gallery-item:focus-visible{
  outline:2px solid rgba(217,152,130,.42);
  outline-offset:4px;
}

.lightbox{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:2rem;
  background:rgba(20,14,12,.88);
  z-index:220;
}

.lightbox.open{
  display:flex;
}

.lightbox img{
  max-width:95vw;
  max-height:85vh;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}

.lightbox .close,
.lightbox .prev,
.lightbox .next{
  position:absolute;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:1.8rem;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease;
}

.lightbox .close:hover,
.lightbox .prev:hover,
.lightbox .next:hover{
  transform:scale(1.04);
  background:rgba(255,255,255,.22);
}

.lightbox .close{
  top:2rem;
  right:2rem;
}

.lightbox .prev{
  left:1rem;
}

.lightbox .next{
  right:1rem;
}

.lightbox [hidden]{
  display:none !important;
}

.faq-item{
  padding:1.25rem;
  border-radius:var(--radius);
  background:rgba(255,255,255,.78);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.faq-item h3{
  margin:0 0 .45rem;
  font-family:var(--font-display);
  font-size:1.55rem;
}

.faq-item p{
  margin:0;
  color:var(--muted);
}

.contact-card{
  display:grid;
  gap:.9rem;
}

.contact-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}

.contact-detail{
  padding:1rem;
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.76);
  border:1px solid var(--line);
}

.contact-detail strong{
  display:block;
  margin-bottom:.25rem;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}

.footer{
  padding:2.35rem 0 1.85rem;
  border-top:1px solid rgba(217,152,130,.18);
  color:var(--muted);
  background:
    radial-gradient(520px 220px at 50% 0%, rgba(255,255,255,.5), transparent 72%),
    linear-gradient(180deg, rgba(248,241,235,.96), rgba(244,229,220,.92));
}

.footer-shell{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas:
    "brand cta ."
    ". primary ."
    ". social ."
    ". secondary ."
    ". copy .";
  align-items:center;
  column-gap:1.25rem;
  row-gap:.65rem;
}

.footer-brand{
  grid-area:brand;
  justify-content:flex-start;
  align-self:center;
}

.footer-brand img{
  height:54px;
  width:auto;
}

.footer-primary-links{
  grid-area:primary;
  display:flex;
  flex-wrap:nowrap;
  justify-content:center;
  gap:.5rem;
  max-width:none;
}

.footer-primary-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.58rem .9rem;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
  font-size:.86rem;
  line-height:1.2;
  white-space:nowrap;
  color:var(--ink);
  background:rgba(255,255,255,.7);
  border:1px solid rgba(217,152,130,.16);
  box-shadow:0 10px 26px rgba(126,94,80,.08);
  transition:transform .2s ease, background .2s ease, color .2s ease;
}

.footer-primary-links a:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.92);
}

.footer-cta-wrap{
  grid-area:cta;
  display:flex;
  justify-content:center;
  align-self:center;
}

.footer-inquiry{
  min-width:150px;
}

.footer-secondary-links{
  grid-area:secondary;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.55rem 1.5rem;
  margin-top:0;
}

.footer-secondary-links a{
  color:var(--muted);
  text-decoration:none;
  font-weight:600;
  font-size:.95rem;
  padding:.15rem 0;
  transition:color .2s ease, opacity .2s ease;
}

.footer-secondary-links a:hover{
  color:var(--ink);
}

.footer-socials{
  grid-area:social;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  margin-top:.3rem;
}

.footer-social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

.footer-social-link:hover{
  color:inherit;
}

.social-badge{
  width:34px;
  height:34px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  box-shadow:0 10px 20px rgba(126,94,80,.14);
  transition:transform .2s ease, box-shadow .2s ease;
}

.social-badge svg{
  width:18px;
  height:18px;
}

.social-badge--instagram{
  background:
    radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 10%, #fd5949 42%, #d6249f 66%, #285AEB 100%);
}

.social-badge--whatsapp{
  background:linear-gradient(180deg, #43d854 0%, #24b24a 100%);
  border-radius:999px;
  box-shadow:0 10px 20px rgba(37,211,102,.24);
}

.social-badge--whatsapp svg{
  width:20px;
  height:20px;
}

.social-badge--mail{
  background:linear-gradient(180deg, #d7a392 0%, #c98d7a 100%);
  box-shadow:0 10px 20px rgba(201,141,122,.22);
}

.footer-social-link:hover .social-badge{
  transform:translateY(-1px) scale(1.05);
  box-shadow:0 14px 24px rgba(126,94,80,.18);
}

.footer-copy{
  grid-area:copy;
  margin:0;
  width:auto;
  max-width:none;
  font-size:.95rem;
  line-height:1.4;
  white-space:nowrap;
  justify-self:center;
  color:var(--muted);
}

@media (max-width: 900px){
  .hero-grid,
  .grid-2,
  .contact-grid,
  .faq-grid{grid-template-columns:1fr}

  .hero-points{grid-template-columns:1fr}

  .hero-visual{
    position:relative;
    height:auto;
    aspect-ratio:4/4.2;
  }

  .about-page .hero-visual{
    aspect-ratio:4/4.05;
  }

  .footer-shell{
    grid-template-columns:1fr;
    grid-template-areas:
      "brand"
      "cta"
      "primary"
      "social"
      "secondary"
      "copy";
    justify-items:center;
    text-align:center;
    row-gap:1rem;
  }

  .footer-brand,
  .footer-copy{
    justify-self:center;
  }

  .footer-brand img{
    height:46px;
  }

  .footer-cta-wrap{
    width:100%;
    justify-content:center;
  }

  .footer-socials{
    margin-top:0;
  }

  .footer-primary-links{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    max-width:100%;
    gap:.45rem;
  }

  .footer-primary-links a{
    width:100%;
    min-width:0;
    padding:.55rem .65rem;
    font-size:.8rem;
    line-height:1.2;
    text-align:center;
    white-space:normal;
    word-break:break-word;
  }

  .footer-secondary-links{
    gap:.2rem 1rem;
  }

  .footer-secondary-links a{
    font-size:.88rem;
  }

  .footer-copy{
    width:100%;
    max-width:100%;
    font-size:.88rem;
    line-height:1.5;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
}

@media (max-width: 640px){
  .footer-shell{
    row-gap:.9rem;
  }

  .footer-brand{
    width:100%;
    justify-content:center;
  }

  .footer-brand img{
    height:46px;
    width:auto;
    max-width:100%;
  }

  .footer-primary-links{
    width:min(100%, 320px);
    margin-inline:auto;
  }

  .footer-primary-links a{
    font-size:.84rem;
    padding:.6rem .7rem;
  }

  .footer-primary-links a:last-child{
    grid-column:1 / -1;
    justify-self:center;
    width:min(48%, 168px);
  }

  .footer-secondary-links{
    justify-content:center;
    row-gap:.35rem;
  }

  .contact-card{
    gap:.75rem;
  }

  .contact-card h2{
    margin:.45rem 0 .75rem;
  }

  .contact-grid{
    gap:.75rem;
  }

  .contact-detail{
    padding:.75rem .82rem;
    border-radius:16px;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(217,152,130,.16);
    line-height:1.5;
  }

  .contact-detail strong{
    margin-bottom:.22rem;
    font-size:.74rem;
    letter-spacing:.08em;
  }

  .contact-detail span,
  .contact-detail span a{
    display:block;
    width:100%;
    font-size:clamp(.78rem, 3.25vw, .9rem);
    line-height:1.34;
    color:var(--ink);
    text-decoration:none;
    white-space:nowrap;
  }

  .contact-detail:last-child span{
    display:flex;
    flex-wrap:wrap;
    gap:.18rem .48rem;
    width:100%;
    font-size:0;
    line-height:1.34;
    white-space:normal;
  }

  .contact-detail:last-child span a{
    display:inline-block;
    width:auto;
    font-size:clamp(.74rem, 3vw, .85rem);
    line-height:1.34;
    text-decoration:underline;
    text-underline-offset:.08em;
    white-space:nowrap;
  }

  .contact-detail a[href^="tel:"]{
    letter-spacing:-.01em;
  }
}

@media (max-width: 640px){
  .burger{
    display:flex;
    grid-area:burger;
    width:42px;
    height:42px;
    justify-self:start;
  }

  .nav{
    grid-template-columns:max-content minmax(0, 1fr) max-content;
    grid-template-areas:
      "burger cta lang"
      ". brand .";
    column-gap:.32rem;
    row-gap:.48rem;
    align-items:center;
    position:relative;
  }

  .site-header .brand{
    grid-area:brand;
    width:108px;
    min-width:0;
    justify-self:end;
    align-self:center;
  }

  .site-header .brand img{
    width:108px;
    height:auto;
    max-width:none;
  }

  .nav-links.primary{
    position:absolute;
    top:calc(100% + .5rem);
    left:0;
    right:auto;
    width:min(236px, calc(100vw - 2rem));
    background:linear-gradient(180deg, rgba(244,229,220,.98), rgba(239,220,209,.96));
    border:1px solid rgba(217,152,130,.22);
    border-radius:16px;
    box-shadow:var(--shadow);
    padding:.62rem;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:.18rem;
    flex-wrap:nowrap;
    max-height:min(calc(100vh - 110px), 440px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    pointer-events:none;
    transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
    z-index:120;
  }

  .nav-links.primary.open{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }

  .nav-links.primary > a,
  .nav-links.primary > .nav-dropdown > a{
    display:block;
    width:100%;
    padding:.72rem .9rem;
    text-align:left;
    margin:0;
    border-radius:12px;
  }

  .nav-links.primary .nav-dropdown{
    display:block;
  }

  .nav-links.primary .nav-dropdown-menu{
    display:none !important;
  }

  .nav-links.primary .service-page-link,
  .nav-links.primary .portfolio-page-link{
    display:block !important;
    width:auto;
    margin:0 0 0 .45rem;
    padding:.34rem .8rem .34rem 1.05rem;
    text-align:left;
    font-size:.84rem;
    line-height:1.2;
    color:var(--muted);
    border-left:1px solid rgba(217,152,130,.26);
    border-radius:0 10px 10px 0;
  }

  .nav-links.primary .service-page-link:hover,
  .nav-links.primary .service-page-link.active,
  .nav-links.primary .portfolio-page-link:hover,
  .nav-links.primary .portfolio-page-link.active{
    color:var(--ink);
    background:transparent;
    transform:none;
  }

  .nav-actions{
    display:contents;
  }

  .header-social-links{
    display:flex;
    grid-area:auto;
    grid-column:2;
    grid-row:2;
    width:auto;
    justify-content:flex-start;
    justify-self:start;
    align-self:center;
    gap:.36rem;
    margin:0 0 0 .45rem;
  }

  .nav-icon-link{
    width:32px;
    height:32px;
  }

  .header-social-badge{
    width:21px;
    height:21px;
  }

  .header-social-badge svg{
    width:13px;
    height:13px;
  }

  .header-cta{
    display:inline-flex !important;
    grid-area:cta;
    justify-self:center;
    align-self:center;
    padding:.56rem .68rem;
    font-size:.75rem;
    line-height:1;
    font-weight:700;
    letter-spacing:.2px;
    min-width:0;
    white-space:nowrap;
    height:40px;
  }

  .lang-switch{
    grid-area:lang;
    min-width:auto;
    justify-self:end;
    align-self:center;
  }

  .lang-btn{
    width:auto;
    min-width:44px;
    height:38px;
    padding:0 .38rem;
    gap:.18rem;
    font-size:.78rem;
  }

  .lang-menu{
    right:0;
    left:auto;
  }
}

@media (min-width: 901px){
  .gallery-showcase .section-head p{
    white-space:nowrap;
  }
}
