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

:root {
  --navy: #1b3a5c;
  --navy-deep: #122846;
  --olive: #6b7f3a;
  --olive-soft: #8a9a5b;
  --gold: #c4a882;
  --gold-soft: #d8c3a4;
  --sand: #f4efe6;
  --foam: #fbf8f3;
  --ink: #1a2430;
  --muted: #5c6b7a;
  --line: rgba(27,58,92,.12);
  --shadow: 0 18px 50px rgba(18,40,70,.12);
  --radius: 18px;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Manrope', system-ui, sans-serif;
  --max: 1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:
    radial-gradient(1200px 500px at 10% -10%, rgba(196,168,130,.28), transparent 60%),
    radial-gradient(900px 420px at 100% 0%, rgba(107,127,58,.16), transparent 55%),
    linear-gradient(180deg, var(--foam), var(--sand));
  line-height:1.55;
}
img{max-width:100%;display:block}
a{color:var(--navy);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--olive)}
.wrap{width:min(100% - 2rem, var(--max));margin-inline:auto}
.site-header{
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(251,248,243,.88);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--navy)}
.brand img{width:52px;height:52px;object-fit:contain;border-radius:12px;background:#fff}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-family:var(--font-display);font-size:1.35rem;font-weight:700}
.brand-text span{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700}
.nav{display:none;gap:1rem;align-items:center}
.nav a{text-decoration:none;color:var(--navy);font-weight:600;font-size:.92rem}
.nav a:hover{color:var(--olive)}
.lang{display:flex;gap:.35rem;flex-wrap:wrap}
.lang a{
  font-size:.72rem;font-weight:700;letter-spacing:.04em;text-decoration:none;
  padding:.28rem .45rem;border-radius:999px;color:var(--navy);border:1px solid transparent;
}
.lang a.active,.lang a:hover{border-color:var(--gold);background:rgba(196,168,130,.18)}
.menu-btn{
  border:1px solid var(--line);background:#fff;border-radius:12px;padding:.55rem .75rem;
  font:inherit;font-weight:700;color:var(--navy);cursor:pointer;
}
.nav.open{display:flex;flex-direction:column;align-items:flex-start;padding:0 0 1rem;gap:.85rem}
@media(min-width:900px){
  .menu-btn{display:none}
  .nav{display:flex}
  .header-tools{display:flex;align-items:center;gap:1rem}
}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  min-height:48px;padding:.75rem 1.15rem;border-radius:999px;border:1px solid transparent;
  font-weight:700;text-decoration:none;cursor:pointer;font:inherit;
}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-deep);color:#fff}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:var(--navy-deep)}
.btn-gold:hover{filter:brightness(1.05);color:var(--navy-deep)}
.btn-outline{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.btn-outline-dark{background:#fff;border-color:var(--line);color:var(--navy)}

.hero{
  position:relative;overflow:hidden;isolation:isolate;
  min-height:min(92vh,820px);display:grid;align-items:end;
  color:#fff;
  background:#122846;
}
.hero-media{
  position:absolute;inset:0;z-index:0;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  transform:scale(1.04);
}
.hero-veil{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(105deg, rgba(18,40,70,.72) 0%, rgba(27,58,92,.42) 45%, rgba(27,58,92,.18) 72%, rgba(18,40,70,.32) 100%),
    linear-gradient(180deg, rgba(18,40,70,.12) 0%, rgba(18,40,70,.42) 100%);
}
.hero-inner{position:relative;z-index:2;padding:5.5rem 0 3.25rem}
.hero-brand{width:120px;height:120px;margin-bottom:1rem;filter:drop-shadow(0 8px 24px rgba(0,0,0,.25));background:#fff;border-radius:22px;padding:.35rem;object-fit:contain}
.hero-kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:700;color:var(--gold-soft);margin:0 0 .6rem}
.hero h1{
  font-family:var(--font-display);font-weight:700;line-height:1.05;margin:0 0 .9rem;
  font-size:clamp(2.4rem, 8vw, 4.4rem);max-width:12ch;
  text-shadow:0 10px 40px rgba(0,0,0,.25);
}
.hero-lead{max-width:34rem;font-size:1.05rem;opacity:.94;margin:0 0 1.4rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem}
.trust{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.5rem;padding:0;list-style:none}
.trust li{
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);
  padding:.45rem .75rem;border-radius:999px;font-size:.82rem;font-weight:600;
}

.section{padding:4rem 0}
.section h2{
  font-family:var(--font-display);font-size:clamp(1.9rem,4vw,2.7rem);margin:0 0 .6rem;color:var(--navy);line-height:1.1;
}
.lead{color:var(--muted);max-width:44rem;margin:0 0 1.5rem}
.areas{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;
}
.area{
  position:relative;overflow:hidden;isolation:isolate;min-height:120px;
  border-radius:16px;display:grid;place-items:end center;padding:1rem;
  font-weight:700;color:#fff;box-shadow:var(--shadow);text-align:center;
  background:#1b3a5c;
}
.area-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;transform:scale(1.04)}
.area::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(18,40,70,.15),rgba(18,40,70,.72))}
.area span{position:relative;z-index:2}
.split{display:grid;gap:1.5rem}
@media(min-width:860px){.split{grid-template-columns:1.05fr .95fr;align-items:stretch}}
.panel{
  background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.25rem;box-shadow:var(--shadow);
}
.media-frame{
  border-radius:22px;overflow:hidden;box-shadow:var(--shadow);min-height:280px;
  background:#d9e1ea;
}
.media-frame img{width:100%;height:100%;object-fit:cover;min-height:280px}
.gallery-mosaic{
  display:grid;gap:.75rem;
  grid-template-columns:repeat(2,1fr);
  grid-auto-rows:minmax(150px,auto);
}
@media(min-width:760px){
  .gallery-mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:150px}
  .gallery-mosaic .g-wide{grid-column:span 2;grid-row:span 2}
  .gallery-mosaic .g-tall{grid-row:span 2}
}
.gallery-mosaic figure{
  margin:0;border-radius:18px;overflow:hidden;position:relative;
  min-height:150px;height:100%;box-shadow:var(--shadow);background:#d9e1ea;
}
.gallery-mosaic img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;
}
.care-strip{
  display:grid;gap:.85rem;
}
@media(min-width:800px){.care-strip{grid-template-columns:repeat(3,1fr)}}
.care-card{
  background:#fff;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);
}
.care-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.care-card .cap{padding:.9rem 1rem;font-weight:700;color:var(--navy)}
.about-body{
  font-family:var(--font-body);
  font-size:1rem;
  font-weight:500;
  color:var(--ink);
  margin:0 0 1.1rem;
  max-width:40rem;
}
.about-skills{margin-top:1.1rem}
.about-skills h3{
  margin:0 0 .4rem;
  font-family:var(--font-body);
  font-size:1rem;
  font-weight:700;
  color:var(--navy);
}
.skills{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}
.skills li{display:flex;gap:.55rem;align-items:flex-start;font-family:var(--font-body);font-weight:500}
.skills li::before{content:"";width:.55rem;height:.55rem;margin-top:.45rem;border-radius:50%;background:var(--olive);flex:0 0 auto}

.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem}
.svc{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:.95rem 1rem;
  font-weight:600;color:var(--navy);min-height:74px;display:flex;align-items:center;
}
.pkg-grid{display:grid;gap:1rem}
@media(min-width:900px){.pkg-grid{grid-template-columns:repeat(3,1fr)}}
.pkg{
  background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.25rem;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:.7rem;
}
.pkg h3{font-family:var(--font-display);font-size:1.7rem;margin:0;color:var(--navy)}
.pkg .price{color:var(--olive);font-weight:800}
.pkg ul{margin:0;padding-left:1.1rem;color:var(--muted)}
.pkg.featured{border-color:rgba(196,168,130,.7);background:linear-gradient(180deg,#fff,rgba(196,168,130,.12))}
.aim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.7rem}
.aim-item{
  background:var(--navy);color:#fff;border-radius:16px;padding:1rem;font-weight:700;text-align:center;
}

.contact{
  position:relative;overflow:hidden;isolation:isolate;
  color:#fff;border-radius:28px;padding:1.5rem;box-shadow:var(--shadow);
  background:#122846;
}
.contact-bg{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;opacity:.35;
}
.contact-veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(135deg, rgba(18,40,70,.92), rgba(27,58,92,.78));
}
.contact > *{position:relative;z-index:2}
.contact h2,.contact .lead{color:#fff}
.contact .lead{opacity:.9}
.form{display:grid;gap:.8rem}
.form-row{display:grid;gap:.8rem}
@media(min-width:700px){.form-row{grid-template-columns:1fr 1fr}}
label{display:grid;gap:.35rem;font-size:.86rem;font-weight:700}
input,select,textarea{
  width:100%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);
  color:#fff;border-radius:14px;padding:.85rem .95rem;font:inherit;
}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,.55)}
option{color:#111}
.alert{padding:.85rem 1rem;border-radius:14px;margin-bottom:1rem;font-weight:600}
.alert-ok{background:rgba(107,127,58,.2);border:1px solid rgba(107,127,58,.45)}
.alert-err{background:rgba(180,60,60,.18);border:1px solid rgba(180,60,60,.4)}

.site-footer{padding:2.5rem 0 3rem;color:var(--muted)}
.footer-inner{display:grid;gap:1rem;border-top:1px solid var(--line);padding-top:1.5rem}
.footer-brand{display:flex;gap:.8rem;align-items:center}
.footer-brand img{width:52px;height:52px;border-radius:12px;background:#fff;object-fit:contain}
.footer-brand strong{color:var(--navy);font-family:var(--font-display);font-size:1.25rem}

/* Admin — fits viewport cleanly */
.admin-body{background:#eef2f6;min-height:100vh;overflow-x:hidden}
.admin-shell{
  display:grid;min-height:100vh;width:100%;
  grid-template-columns:1fr;
}
.admin-nav{
  background:var(--navy-deep);color:#fff;padding:.75rem;
  display:none;flex-direction:column;gap:.2rem;
}
.admin-nav.is-open{display:flex}
.admin-nav-brand{display:flex;gap:.6rem;align-items:center;margin-bottom:.6rem;padding:.25rem}
.admin-nav a{
  color:rgba(255,255,255,.9);text-decoration:none;display:block;
  padding:.55rem .7rem;border-radius:10px;font-weight:600;font-size:.92rem;
}
.admin-nav a:hover,.admin-nav a.active{background:rgba(255,255,255,.12);color:#fff}
.admin-mobile-bar{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.7rem 1rem;background:var(--navy-deep);color:#fff;
}
.admin-mobile-bar strong{font-family:var(--font-display);font-size:1.15rem}
.admin-mobile-bar button{
  border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;
  border-radius:10px;padding:.45rem .7rem;font:inherit;font-weight:700;cursor:pointer;
}
.admin-main{
  padding:1rem;min-width:0;width:100%;box-sizing:border-box;
}
.admin-top{display:flex;justify-content:space-between;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}
.admin-top h1{font-size:clamp(1.35rem,3vw,1.75rem)!important}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}
@media(min-width:700px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1000px){.cards{grid-template-columns:repeat(5,minmax(0,1fr))}}
.card{background:#fff;border-radius:14px;padding:.85rem;border:1px solid #d9e1ea;min-width:0}
.card .n{font-size:1.35rem;font-weight:800;color:var(--navy)}
.card .l{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.table-wrap{overflow:auto;background:#fff;border-radius:14px;border:1px solid #d9e1ea;max-width:100%;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:520px}
th,td{padding:.65rem .7rem;border-bottom:1px solid #eef2f6;text-align:left;vertical-align:top;word-break:break-word}
th{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.admin-form{display:grid;gap:.65rem;background:#fff;padding:1rem;border-radius:14px;border:1px solid #d9e1ea;margin-bottom:1rem;max-width:100%}
.admin-form .form-row{grid-template-columns:1fr}
@media(min-width:700px){.admin-form .form-row{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.admin-form .invoice-line{grid-template-columns:2fr .7fr .9fr}}
.admin-form input,.admin-form select,.admin-form textarea{
  background:#fff;color:var(--ink);border:1px solid #d0d7e0;max-width:100%;
}
.admin-body .split{grid-template-columns:1fr;gap:1rem}
@media(min-width:960px){.admin-body .split{grid-template-columns:1.2fr .8fr}}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}
.login-card{width:min(100%,420px);background:#fff;border-radius:22px;padding:1.4rem;box-shadow:var(--shadow)}
.badge{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.72rem;font-weight:800;background:rgba(107,127,58,.15);color:var(--olive)}
.badge-warn{background:rgba(196,168,130,.25);color:#8a6a3a}
.badge-danger{background:rgba(180,60,60,.12);color:#a33}
.muted{color:var(--muted)}
.stack-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.stack-actions select{min-width:0;max-width:100%;flex:1 1 120px}
@media(min-width:960px){
  .admin-mobile-bar{display:none}
  .admin-shell{grid-template-columns:210px minmax(0,1fr)}
  .admin-nav{
    display:flex;position:sticky;top:0;height:100vh;overflow:auto;
    padding:1rem .75rem;
  }
  .admin-main{padding:1.25rem 1.25rem 2rem}
}
