/*
 * Shared premium footer, v3.0.
 * Isolated to .premium-footer so the original site design stays unchanged.
 */
footer.premium-footer {
  --pf-cream:#fbf4e8;
  --pf-muted:#c2aa92;
  --pf-gold:#dcb77c;
  --pf-outline:rgba(221,185,129,.18);
  box-sizing:border-box;
  position:relative;
  isolation:isolate;
  margin:0;
  padding:0;
  min-width:0;
  width:100%;
  overflow:hidden;
  color:var(--pf-cream);
  background:
    radial-gradient(ellipse 40% 35% at 4% 0%,rgba(189,120,55,.15),transparent 90%),
    radial-gradient(ellipse 42% 58% at 98% 62%,rgba(132,81,45,.18),transparent 82%),
    linear-gradient(164deg,#261912 0%,#211711 42%,#17110e 100%);
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.premium-footer *,
.premium-footer *::before,
.premium-footer *::after { box-sizing:border-box; }
.premium-footer :is(h2,h3,p,ul,address) { margin:0; }
.premium-footer :is(a,a:visited) { color:inherit; text-decoration:none; }
.premium-footer a:focus-visible { outline:2px solid #efcc8f; outline-offset:4px; border-radius:5px; }
.premium-footer .pf-icon { width:20px; height:20px; flex:0 0 auto; display:block; }
.premium-footer .pf-container { width:min(1250px,calc(100% - 72px)); margin-inline:auto; position:relative; z-index:1; }
.premium-footer .pf-top-stroke { position:absolute; inset:0 0 auto; height:3px; background:linear-gradient(90deg,transparent 0%,#b78b55 24%,#f1d39b 51%,#b78b55 76%,transparent 100%); opacity:.9; }

/* Upper conversion feature, kept visually separate from the detailed footer. */
.premium-footer .pf-hero {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(315px,.65fr);
  align-items:center;
  gap:36px;
  padding:36px clamp(26px,4.2vw,56px);
  margin-top:42px;
  border:1px solid rgba(232,190,127,.24);
  border-radius:24px;
  overflow:hidden;
  background:
    radial-gradient(circle at 95% -50%,rgba(241,198,129,.15),transparent 46%),
    linear-gradient(113deg,rgba(107,67,40,.56),rgba(75,45,29,.58) 58%,rgba(70,42,27,.68));
  box-shadow:0 22px 70px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.07);
}
.premium-footer .pf-hero::after {
  content:"";
  position:absolute;
  width:300px;
  height:300px;
  border:1px solid rgba(232,190,127,.11);
  border-radius:50%;
  right:-108px;
  top:-194px;
  box-shadow:0 0 0 54px rgba(232,190,127,.035),0 0 0 106px rgba(232,190,127,.026);
  pointer-events:none;
}
.premium-footer .pf-hero-copy,.premium-footer .pf-hero-cta { position:relative; z-index:1; min-width:0; }
.premium-footer .pf-eyebrow {
  display:flex;
  align-items:center;
  gap:11px;
  font-size:10px;
  font-weight:800;
  line-height:1.4;
  letter-spacing:.2em;
  color:#f3d5a3;
}
.premium-footer .pf-eyebrow-line { width:25px; height:1px; flex:none; background:#e4b76f; }
.premium-footer .pf-hero h2 {
  max-width:730px;
  margin:12px 0 12px;
  color:#fffaf1;
  font-size:clamp(26px,2.9vw,39px);
  font-weight:850;
  letter-spacing:-.035em;
  line-height:1.38;
  text-wrap:balance;
}
.premium-footer .pf-hero h2 span { color:#f1ca8d; }
.premium-footer .pf-hero p { max-width:635px; color:#e5d2bb; font-size:14px; font-weight:500; line-height:1.8; }
.premium-footer .pf-hero-steps { display:flex; gap:0; flex-wrap:wrap; align-items:center; margin-top:17px; font-size:12px; color:#e5cda9; font-weight:750; }
.premium-footer .pf-hero-steps span:not(:first-child)::before { content:"/"; color:#a47e53; margin:0 13px; font-weight:400; }
.premium-footer .pf-hero-cta { display:grid; gap:10px; }
.premium-footer .pf-button {
  display:flex;
  align-items:center;
  gap:13px;
  min-width:0;
  min-height:68px;
  padding:12px 17px;
  border-radius:13px;
  font-size:14px;
  font-weight:750;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
}
.premium-footer .pf-button:hover { transform:translateY(-2px); box-shadow:0 14px 28px rgba(0,0,0,.21); }
.premium-footer a.pf-button-line,.premium-footer a.pf-button-line:visited { color:#fff; }
.premium-footer a.pf-button-call,.premium-footer a.pf-button-call:visited { color:#302015; }
.premium-footer .pf-button-line { background:#0aa64b; border:1px solid rgba(140,245,177,.28); color:#fff; box-shadow:inset 0 1px rgba(255,255,255,.12); }
.premium-footer .pf-button-line:hover { background:#0bb754; }
.premium-footer .pf-button-call { background:#f3ddba; color:#302015; border:1px solid #f9eacb; }
.premium-footer .pf-button-call:hover { background:#fff0d5; }
.premium-footer .pf-button .pf-button-icon { display:grid; place-items:center; flex:0 0 auto; width:38px; height:38px; border-radius:11px; background:rgba(255,255,255,.13); }
.premium-footer .pf-button-call .pf-button-icon { background:rgba(74,42,22,.1); }
.premium-footer .pf-button .pf-button-text { display:flex; min-width:0; flex:1; flex-direction:column; }
.premium-footer .pf-button .pf-button-text small { font-size:11px; line-height:1.5; font-weight:600; opacity:.88; }
.premium-footer .pf-button .pf-button-text strong { font-size:16px; line-height:1.55; font-weight:850; overflow-wrap:anywhere; }
.premium-footer .pf-button > .pf-icon { width:16px; height:16px; opacity:.83; }

/* One crisp information band rather than four large floating cards. */
.premium-footer .pf-benefits { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:32px 0 30px; border-bottom:1px solid var(--pf-outline); }
.premium-footer .pf-benefit { display:flex; gap:13px; align-items:center; min-width:0; padding:0 17px; }
.premium-footer .pf-benefit:first-child { padding-left:0; }
.premium-footer .pf-benefit:last-child { padding-right:0; }
.premium-footer .pf-benefit + .pf-benefit { border-left:1px solid var(--pf-outline); }
.premium-footer .pf-benefit-symbol { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border:1px solid rgba(223,180,111,.23); border-radius:12px; color:#e2bc83; background:rgba(220,183,124,.085); }
.premium-footer .pf-benefit-symbol .pf-icon { width:21px; height:21px; }
.premium-footer .pf-benefit div { min-width:0; display:grid; gap:1px; }
.premium-footer .pf-benefit strong { color:#fff3dd; font-size:13px; line-height:1.45; font-weight:850; }
.premium-footer .pf-benefit div > span { font-size:11.5px; color:var(--pf-muted); font-weight:500; line-height:1.6; }

/* Detailed content: brand, two useful site-navigation groups, and contacts. */
.premium-footer .pf-content { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.78fr) minmax(0,.85fr) minmax(0,1.12fr); gap:clamp(18px,2.5vw,38px); padding:42px 0 36px; align-items:start; }
.premium-footer .pf-about { min-width:0; padding-right:3px; }
.premium-footer .pf-brand { display:flex; gap:12px; align-items:center; min-width:0; }
.premium-footer .pf-brand-logo { width:105px; height:66px; display:grid; place-items:center; flex:none; padding:5px; border-radius:14px; border:1px solid rgba(255,255,255,.65); background:linear-gradient(180deg,#fffdf8,#f7eee2); box-shadow:0 8px 28px rgba(0,0,0,.2); }
.premium-footer .pf-brand-logo img { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; }
.premium-footer .pf-brand-copy { display:flex; flex-direction:column; min-width:0; gap:4px; }
.premium-footer .pf-brand-copy strong { font-size:clamp(17px,1.55vw,21px); line-height:1.35; color:#ffebc9; font-weight:850; overflow-wrap:anywhere; }
.premium-footer .pf-brand-copy small { font-size:8.5px; font-weight:700; color:#cda977; letter-spacing:.105em; line-height:1.6; }
.premium-footer .pf-about-desc { margin-top:21px; color:#d2bea8; line-height:1.9; font-size:13px; max-width:360px; }
.premium-footer .pf-service-area { margin-top:21px; }
.premium-footer .pf-overline { color:#f0cca0; font-size:11px; font-weight:850; letter-spacing:.035em; }
.premium-footer .pf-area-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.premium-footer .pf-area-chips span { display:inline-flex; border:1px solid rgba(233,200,151,.17); border-radius:6px; padding:5px 9px; color:#d7bea0; background:rgba(255,255,255,.04); font-weight:650; font-size:11px; }
.premium-footer .pf-heading { display:flex; align-items:center; gap:10px; min-height:36px; margin-bottom:13px; }
.premium-footer .pf-heading-line { flex:0 0 3px; width:3px; height:18px; border-radius:3px; background:linear-gradient(180deg,#f1d5a0,#a8733c); }
.premium-footer .pf-heading h3 { font-size:16px; line-height:1.5; color:#fff0d6; font-weight:850; letter-spacing:0; }
.premium-footer .pf-links { min-width:0; }
.premium-footer .pf-links ul { padding:0; list-style:none; display:grid; gap:0; }
.premium-footer .pf-links li { border-bottom:1px solid rgba(227,189,139,.09); }
.premium-footer .pf-links li:last-child { border-bottom:0; }
.premium-footer .pf-links a { display:flex; align-items:center; justify-content:space-between; gap:4px; min-height:37px; padding:8px 0; color:#d6c0a7; font-size:12.8px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; transition:color .16s ease,padding-left .16s ease; }
.premium-footer .pf-links a .pf-icon { width:13px; height:13px; opacity:0; transform:translate(-4px,4px); transition:opacity .16s ease,transform .16s ease; }
.premium-footer .pf-links a:hover,.premium-footer .pf-links a:focus-visible { color:#f5cf97; padding-left:3px; }
.premium-footer .pf-links a:hover .pf-icon,.premium-footer .pf-links a:focus-visible .pf-icon { opacity:1; transform:translate(0,0); }
.premium-footer .pf-contact { min-width:0; padding:16px 17px 17px; border:1px solid rgba(232,191,127,.18); border-radius:16px; background:linear-gradient(145deg,rgba(241,203,145,.09),rgba(255,255,255,.023)); box-shadow:inset 0 1px rgba(255,255,255,.025); }
.premium-footer .pf-contact .pf-heading { margin-bottom:5px; }
.premium-footer .pf-contact-intro { margin:0 0 13px; font-size:12px; color:#cbb49a; line-height:1.8; }
.premium-footer .pf-contact-row { display:flex; gap:10px; align-items:center; min-width:0; min-height:57px; padding:10px 2px; border-top:1px solid rgba(227,189,139,.12); }
.premium-footer .pf-contact-icon { display:grid; flex:0 0 35px; place-items:center; width:35px; height:35px; color:#f5cf95; background:rgba(224,181,111,.1); border-radius:9px; }
.premium-footer .pf-contact-line .pf-contact-icon { color:#a6f5c0; background:rgba(30,171,84,.13); }
.premium-footer .pf-contact-row > span:nth-child(2) { display:flex; flex-direction:column; flex:1; min-width:0; }
.premium-footer .pf-contact-row small { color:#aa9073; font-size:9px; letter-spacing:.13em; font-weight:750; line-height:1.5; }
.premium-footer .pf-contact-row strong { font-size:15px; color:#f9ead1; font-weight:850; line-height:1.55; overflow-wrap:anywhere; }
.premium-footer .pf-contact-line strong { color:#bbf3cb; }
.premium-footer .pf-contact-row > .pf-icon { width:14px; height:14px; color:#a48a67; transition:transform .16s ease,color .16s ease; }
.premium-footer .pf-contact-row:hover > .pf-icon { color:#f5cc86; transform:translate(2px,-2px); }
.premium-footer .pf-address { display:flex; align-items:flex-start; gap:9px; padding-top:14px; border-top:1px solid rgba(227,189,139,.12); }
.premium-footer .pf-address-icon { width:23px; height:24px; color:#cda977; flex:0 0 auto; padding-top:3px; }
.premium-footer .pf-address-icon .pf-icon { width:18px; height:18px; }
.premium-footer .pf-address strong { display:block; color:#ebc999; font-size:11px; margin-bottom:3px; }
.premium-footer .pf-address address { color:#c8b299; font-size:11px; font-weight:500; line-height:1.8; font-style:normal; }

/* Small closing conversion hint and unobtrusive credit bar. */
.premium-footer .pf-signoff { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:15px 25px; padding:16px 0 20px; border-top:1px solid var(--pf-outline); }
.premium-footer .pf-signoff-left { display:flex; align-items:center; gap:11px; min-width:0; color:#cdb69e; font-size:12.5px; }
.premium-footer .pf-signoff-left strong { color:#f6d39b; font-weight:800; }
.premium-footer .pf-signoff-mark { color:#e6bf88; }
.premium-footer .pf-signoff-mark .pf-icon { width:19px; height:19px; }
.premium-footer .pf-signoff > a { display:inline-flex; align-items:center; gap:7px; color:#edc995; font-size:12px; font-weight:850; }
.premium-footer .pf-signoff > a:hover { color:#fff; }
.premium-footer .pf-signoff > a .pf-icon { width:14px; height:14px; }
.premium-footer .pf-bottom { position:relative; border-top:1px solid rgba(237,199,145,.11); background:rgba(6,5,4,.35); }
.premium-footer .pf-bottom-inner { display:flex; align-items:center; justify-content:space-between; gap:12px 35px; min-height:64px; padding-block:14px; }
.premium-footer .pf-copyright { font-size:11px; color:#a7917c; line-height:1.6; }
.premium-footer .pf-copyright span { padding:0 4px; color:#816b57; }
.premium-footer .pf-credits { display:flex; flex-wrap:wrap; gap:7px 0; align-items:center; font-size:11px; color:#a9927c; line-height:1.65; }
.premium-footer .pf-credits > span { white-space:nowrap; }
.premium-footer .pf-credits > span + span::before { content:"·"; color:#795e49; display:inline-block; margin:0 15px; }
.premium-footer .pf-credits a { color:#edd0a2; font-weight:850; text-underline-offset:3px; text-decoration:none; transition:color .16s ease; }
.premium-footer .pf-credits a:hover,.premium-footer .pf-credits a:focus-visible { color:#fff; text-decoration:underline; }

@media (max-width:1160px) {
  .premium-footer .pf-hero { grid-template-columns:minmax(0,1fr) minmax(290px,.7fr); gap:25px; padding:32px; }
  .premium-footer .pf-content { grid-template-columns:1.1fr 1fr 1fr; column-gap:25px; }
  .premium-footer .pf-about { grid-column:span 1; }
  .premium-footer .pf-contact { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; gap:0 24px; align-items:start; }
  .premium-footer .pf-contact .pf-heading,.premium-footer .pf-contact-intro { grid-column:1 / -1; }
  .premium-footer .pf-contact .pf-contact-row { min-width:0; }
  .premium-footer .pf-contact .pf-address { grid-column:1 / -1; }
}
@media (max-width:820px) {
  .premium-footer .pf-container { width:min(100% - 44px,1250px); }
  .premium-footer .pf-hero { grid-template-columns:1fr; gap:22px; padding:28px; margin-top:28px; }
  .premium-footer .pf-hero-cta { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .premium-footer .pf-button { padding:10px 12px; }
  .premium-footer .pf-button .pf-button-text strong { font-size:13.5px; }
  .premium-footer .pf-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:19px; padding:25px 0; }
  .premium-footer .pf-benefit:nth-child(odd) { padding-left:0; border-left:0; }
  .premium-footer .pf-benefit:nth-child(even) { padding-right:0; }
  .premium-footer .pf-content { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 22px; padding:32px 0; }
  .premium-footer .pf-about { grid-column:1 / -1; }
  .premium-footer .pf-about-desc { max-width:700px; }
  .premium-footer .pf-contact { grid-column:1 / -1; }
  .premium-footer .pf-bottom-inner { align-items:flex-start; flex-direction:column; gap:8px; }
}
@media (max-width:520px) {
  .premium-footer .pf-container { width:calc(100% - 30px); }
  .premium-footer .pf-hero { padding:24px 19px; margin-top:19px; border-radius:17px; }
  .premium-footer .pf-hero h2 { font-size:clamp(25px,6.8vw,32px); line-height:1.42; }
  .premium-footer .pf-eyebrow { font-size:9px; letter-spacing:.13em; }
  .premium-footer .pf-hero p { font-size:12.5px; }
  .premium-footer .pf-hero-steps { font-size:10.5px; }
  .premium-footer .pf-hero-steps span:not(:first-child)::before { margin-inline:8px; }
  .premium-footer .pf-hero-cta { grid-template-columns:1fr; gap:9px; }
  .premium-footer .pf-button { min-height:61px; padding:10px 14px; }
  .premium-footer .pf-button .pf-button-text strong { font-size:15px; }
  .premium-footer .pf-benefits { gap:0; padding:18px 0; }
  .premium-footer .pf-benefit { padding:12px 9px; gap:9px; border:0 !important; }
  .premium-footer .pf-benefit:nth-child(odd) { padding-left:0; }
  .premium-footer .pf-benefit:nth-child(even) { padding-right:0; }
  .premium-footer .pf-benefit-symbol { width:34px; height:34px; flex-basis:34px; border-radius:9px; }
  .premium-footer .pf-benefit-symbol .pf-icon { width:17px; height:17px; }
  .premium-footer .pf-benefit strong { font-size:11px; }
  .premium-footer .pf-benefit div > span { font-size:10px; }
  .premium-footer .pf-content { column-gap:16px; row-gap:24px; padding:27px 0 22px; }
  .premium-footer .pf-about { grid-column:1 / -1; }
  .premium-footer .pf-brand-logo { width:91px; height:59px; }
  .premium-footer .pf-brand-copy strong { font-size:18px; }
  .premium-footer .pf-about-desc { margin-top:15px; font-size:12.5px; }
  .premium-footer .pf-service-area { margin-top:14px; }
  .premium-footer .pf-heading h3 { font-size:14px; }
  .premium-footer .pf-heading { min-height:30px; margin-bottom:8px; }
  .premium-footer .pf-links a { font-size:11.5px; line-height:1.6; padding:7px 0; }
  .premium-footer .pf-contact { grid-column:1 / -1; grid-template-columns:1fr; padding:17px; }
  .premium-footer .pf-contact .pf-heading,.premium-footer .pf-contact-intro,.premium-footer .pf-contact .pf-address { grid-column:1; }
  .premium-footer .pf-signoff { padding:17px 0; gap:8px; }
  .premium-footer .pf-signoff-left { align-items:start; font-size:11.5px; }
  .premium-footer .pf-copyright,.premium-footer .pf-credits { font-size:10.5px; }
  .premium-footer .pf-credits > span + span::before { margin:0 9px; }
}
@media (prefers-reduced-motion:reduce) {
  .premium-footer :is(a,.pf-icon) { transition:none !important; }
}

/* The original page has fixed LINE / telephone pills. Hide them only while footer CTAs are in view. */
body .float-contact { transition:opacity .2s ease,transform .2s ease; }
body.pf-footer-visible .float-contact { opacity:0; pointer-events:none; transform:translateY(16px); }
@media (prefers-reduced-motion:reduce) { body .float-contact { transition:none; } }
