/* Local-only IP placement study. The original release is unchanged. */
body .service-header .ip-header-contact {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:54px;
  padding:6px 17px 6px 9px;
  border:1px solid #f3c99e;
  border-radius:6px;
  background:#efb583;
  color:#171d24;
  font-size:15px;
  font-weight:550;
  line-height:1.4;
  box-shadow:0 4px 24px #efb58315;
  transition:background .25s,box-shadow .25s,transform .25s;
}
body .service-header .ip-header-contact:hover {
  background:#f4c59e;
  box-shadow:0 6px 28px #efb58325;
  transform:translateY(-1px);
}
.ip-header-avatar {
  position:relative;
  display:block;
  flex:none;
  width:42px;
  height:42px;
  overflow:hidden;
  transform:rotate(-5deg);
  transition:transform 500ms cubic-bezier(.2,.7,.25,1);
}
.ip-header-avatar img {
  position:absolute;
  display:block;
  width:76px;
  height:101.33px;
  max-width:none;
  left:-16px;
  top:-3px;
  pointer-events:none;
}
.ip-header-contact:hover .ip-header-avatar,.ip-header-contact:focus-visible .ip-header-avatar { transform:rotate(5deg); }
.ip-header-arrow { margin-left:8px;font-size:20px;font-weight:400; }
body[data-scene-active=services]:not(.is-reading) .service-header .ip-header-contact { background:#efb583;color:#171d24; }
.contact-section .ip-contact-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) 252px;
  align-items:center;
  gap:72px;
  margin-bottom:32px;
}
.contact-section .ip-contact-heading h2 { margin:0; }
.ip-companion {
  --ip-tilt:0deg;
  --ip-shift:0px;
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:1086/1448;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  border-radius:50%;
  isolation:isolate;
  -webkit-tap-highlight-color:transparent;
}
.ip-companion::before {
  content:"";
  position:absolute;
  inset:10% -12% -10%;
  border-radius:50%;
  background:radial-gradient(ellipse at 50% 55%,#efb58309,transparent 67%);
  pointer-events:none;
}
.ip-companion-art {
  position:absolute;
  inset:0;
  display:block;
  transform-origin:50% 94%;
  animation:ip-breathe 6.6s ease-in-out infinite;
}
.ip-companion img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:invert(1) sepia(.12) saturate(.28);
  pointer-events:none;
  user-select:none;
}
.ip-companion-head,.ip-companion-body { position:absolute;inset:0;display:block; }
.ip-companion-head {
  clip-path:inset(0 0 55% 0);
  transform-origin:50% 44%;
  transform:translateX(var(--ip-shift)) rotate(var(--ip-tilt));
  transition:transform 650ms cubic-bezier(.2,.7,.25,1);
}
.ip-companion-body { clip-path:inset(44.8% 0 0 0); }
.ip-companion:focus-visible { outline:1px solid var(--noe-accent);outline-offset:16px; }
.ip-contact-companion { width:216px;justify-self:center;transform:rotate(2deg); }
.ip-contact-companion:hover,.ip-contact-companion:focus-visible { --ip-tilt:-5deg;--ip-shift:-1px; }
.ip-contact-companion:hover .ip-companion-art { animation-play-state:paused; }
#services .ref-document-body { position:relative; }
#services .ref-document-tasks { padding-right:116px; }
#services .ip-services-companion {
  position:absolute;
  right:25px;
  bottom:20px;
  width:98px;
  z-index:4;
  transform:rotate(-3deg);
}
#services .ip-services-companion:hover,#services .ip-services-companion:focus-visible { --ip-tilt:6deg;--ip-shift:1px; }
#cases .ip-case-action {
  display:table;
  position:relative;
  margin-top:18px;
  max-width:calc(100% - 112px);
}
#cases .ip-case-action>.button { position:relative;left:auto;bottom:auto;margin-top:0; }
#cases .ip-case-companion {
  position:absolute;
  left:calc(100% + 18px);
  top:-20px;
  width:88px;
  pointer-events:none;
  transform:rotate(-5deg);
}
#cases .ip-case-companion .ip-companion-head { --ip-tilt:-5deg; }
#cases .ip-case-action:hover .ip-companion-head { --ip-tilt:3deg; }
.contact-section .contact-bottom { padding-top:28px;border-top:1px solid var(--noe-line); }
.ip-success-companion { width:116px;margin:0 auto 26px; }
.ip-success-companion .ip-companion-art { animation:ip-arrive 850ms cubic-bezier(.2,.7,.25,1) both,ip-breathe 6.6s 850ms ease-in-out infinite; }
.ip-success-companion .ip-companion-head { --ip-tilt:-4deg; }
#appointment-success { padding:12px 4px 4px;text-align:center; }
#appointment-success h3 { margin:0 0 14px;font-size:32px;font-weight:520;letter-spacing:-.025em; }
#appointment-success p { margin:0 auto 30px;font-size:16px; }
#appointment-success .button { min-height:50px;justify-content:center; }
.preview-dialog.is-ip-success { width:min(540px,calc(100% - 40px));padding:42px 46px 36px; }
.preview-dialog.is-ip-success>h2,.preview-dialog.is-ip-success>.dialog-description { display:none; }
.ip-state-note { margin:0 0 24px;color:var(--noe-subtle);font-size:12px;letter-spacing:.03em; }
.ip-state-note::before { content:"";display:inline-block;width:5px;height:5px;margin-right:8px;background:var(--noe-accent);border-radius:50%;vertical-align:middle; }
.ip-preview-tools {
  position:fixed;
  right:22px;
  bottom:20px;
  z-index:150;
  display:flex;
  align-items:center;
  gap:4px;
  padding:5px;
  border:1px solid #a0afc033;
  border-radius:7px;
  background:#111923ed;
  color:#ccd2d9;
  box-shadow:0 8px 32px #0003;
  backdrop-filter:blur(12px);
  font-size:12px;
}
.ip-preview-tools>span { padding:4px 10px;color:#a0afc0; }
.ip-preview-tools>span::before { content:"";display:inline-block;width:5px;height:5px;margin-right:7px;background:#efb583;border-radius:50%;vertical-align:middle; }
.ip-preview-tools button { padding:7px 11px;background:transparent;border:0;border-radius:4px;font-size:12px;line-height:1.5; }
.ip-preview-tools button:hover,.ip-preview-tools button:focus-visible { color:#efb583;background:#efb58310; }
@keyframes ip-breathe { 0%,100% { transform:translateY(0) rotate(-.7deg); } 50% { transform:translateY(-3px) rotate(.7deg); } }
@keyframes ip-arrive { from { opacity:0;transform:translateY(9px) rotate(-5deg); } to { opacity:1;transform:translateY(0) rotate(0); } }
@media(max-width:1100px) {
  body .service-header .ip-header-contact { font-size:14px;gap:9px;min-height:48px;padding:4px 13px 4px 7px; }
  .ip-header-avatar { width:38px;height:38px; }
  .ip-header-avatar img { width:70px;height:93.33px;left:-15px; }
  .contact-section .ip-contact-heading { grid-template-columns:minmax(0,1fr) 190px;gap:40px; }
  .ip-contact-companion { width:180px; }
  #services .ip-services-companion { width:78px;right:16px;bottom:16px; }
  #services .ref-document-tasks { padding-right:88px; }
  #cases .ip-case-action { max-width:calc(100% - 84px); }
  #cases .ip-case-companion { width:68px;left:calc(100% + 10px);top:-10px; }
}
@media(min-width:981px) and (max-height:800px) {
  #services .ip-services-companion { width:76px;right:18px;bottom:14px; }
  #services .ref-document-tasks { padding-right:88px; }
  #cases .ip-case-action { margin-top:10px; }
  #cases .ip-case-companion { width:76px;top:-16px; }
}
@media(min-width:981px) and (max-height:720px) {
  #cases .ip-case-action { position:absolute;left:200px;bottom:0;margin:0; }
}
@media(max-width:760px) {
  body .service-header .ip-header-contact { font-size:12px;gap:6px;min-height:44px;padding:3px 10px 3px 5px; }
  .ip-header-arrow { margin-left:1px;font-size:17px; }
  .contact-section .ip-contact-heading { grid-template-columns:minmax(0,1fr) 116px;gap:16px;margin-bottom:30px; }
  .contact-section .ip-contact-heading h2 { font-size:clamp(30px,6.5vw,48px); }
  .ip-contact-companion { width:116px; }
  html[lang=en] .contact-section .ip-contact-heading h2 { font-size:clamp(27px,5.4vw,42px); }
  .ip-preview-tools { right:12px;bottom:12px; }
  .ip-preview-tools>span { display:none; }
  .preview-dialog.is-ip-success { padding:34px 28px 28px; }
}
@media(prefers-reduced-motion:reduce) {
  .ip-header-avatar { transition:none; }
  .ip-companion-art,.ip-success-companion .ip-companion-art { animation:none; }
  .ip-companion-head { transition:none;transform:none; }
}
