/* Respite Care Hawaii Kai — site styles
   Sunlit East Oahu: white and warm sand, deep Maunalua-ocean ink, straw-hat yellow
   for the main action. Photos framed like postcards; one wave at the closing band. */
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/jakarta.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(fonts/source-sans.woff2) format("woff2");font-weight:200 900;font-display:swap}
:root{
  --white:#FFFFFF; --sand:#F6F0E4; --sand-2:#EDE3D0; --ink:#0D3B4F; --ink-soft:#4A6270;
  --sun:#F2C14E; --sun-deep:#E0AA2E; --sea:#1F6F8B; --rule:#E2D8C5;
  --head:"Plus Jakarta Sans",system-ui,sans-serif; --body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --max:1180px; --gut:clamp(20px,4vw,40px);
  --phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--white);color:var(--ink);font:400 1.19rem/1.65 var(--body)}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--sea);text-underline-offset:.2em}
a:hover{color:var(--ink);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--sea);outline-offset:3px;border-radius:4px}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
h1,h2,h3,h4{font-family:var(--head);font-weight:800;line-height:1.1;margin:0 0 .5em;letter-spacing:-.02em;text-wrap:balance;color:var(--ink)}
h1{font-size:clamp(2.5rem,5.4vw,4.1rem);letter-spacing:-.03em}
h2{font-size:clamp(1.85rem,3.3vw,2.55rem)}
h3{font-size:1.3rem;font-weight:700;letter-spacing:-.01em}
h4{font-size:1.1rem;font-weight:700}
h2.bar::after{content:"";display:block;width:56px;height:6px;border-radius:3px;background:var(--sun);margin-top:16px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 14px;z-index:99}
.skip:focus{left:8px}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.measure{max-width:64ch}
.lede{font-size:1.3rem;line-height:1.55;color:var(--ink-soft);max-width:56ch}
.muted{color:var(--ink-soft);font-size:1.02rem}
.sub-h{margin-top:48px}
.more{margin-top:24px;font-weight:600}

/* buttons: sun-yellow primary, ocean outline secondary */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:.7em 1.4em;border-radius:6px;background:var(--sun);color:var(--ink);font:800 1.05rem/1.2 var(--head);text-decoration:none;border:2px solid var(--sun);cursor:pointer;letter-spacing:-.005em}
.btn:hover{background:var(--sun-deep);border-color:var(--sun-deep);color:var(--ink)}
.btn--line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--line:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--lg{min-height:60px;font-size:1.1rem;padding:.8em 1.35em}
.btn--call::before{content:"";width:19px;height:19px;flex:none;background:currentColor;-webkit-mask:var(--phone) center/contain no-repeat;mask:var(--phone) center/contain no-repeat}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;align-items:center}
.form .btn{background:var(--ink);border-color:var(--ink);color:#fff}
.form .btn:hover{background:var(--sea);border-color:var(--sea);color:#fff}

/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.top__in{display:flex;align-items:center;gap:18px;min-height:84px}
.brand{margin-right:auto;display:flex;align-items:center}
.brand img{height:56px;width:auto;max-width:250px;object-fit:contain}
.menu{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.menu>li{position:relative}
.menu a{display:block;padding:10px 11px;color:var(--ink);text-decoration:none;font:600 1rem/1.2 var(--head);white-space:nowrap;border-radius:6px}
.menu a:hover{color:var(--sea);background:var(--sand)}
.menu a[aria-current=page]{color:var(--sea)}
.menu .sub{display:none;position:absolute;top:100%;left:0;min-width:250px;list-style:none;margin:0;padding:8px;background:#fff;border:1px solid var(--rule);border-radius:10px;box-shadow:0 16px 40px -16px rgba(13,59,79,.3)}
.menu li:hover>.sub,.menu li:focus-within>.sub{display:block}
.menu .menu__est{margin-left:8px}
.menu .menu__est a{border:2px solid var(--ink);padding:9px 14px}
.menu .menu__est a:hover{background:var(--ink);color:#fff}
.menu .menu__cta{margin-left:8px}
.menu .menu__cta a{display:inline-flex;align-items:center;gap:8px;background:var(--sun);color:var(--ink);font-weight:800;padding:11px 16px}
.menu .menu__cta a::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--phone) center/contain no-repeat;mask:var(--phone) center/contain no-repeat}
.menu .menu__cta a:hover{background:var(--sun-deep);color:var(--ink)}
.menu-toggle{display:none;background:none;border:2px solid var(--ink);color:var(--ink);border-radius:6px;min-height:46px;padding:0 16px;font:700 1rem var(--head);cursor:pointer}
.top__call{display:none}
@media (max-width:1100px) and (min-width:1041px){.menu a{padding:10px 8px;font-size:.95rem}}
@media (max-width:1040px){
  .menu-toggle{display:block}
  .top__call{display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:0 14px;border-radius:6px;background:var(--sun);color:var(--ink);font:800 1rem var(--head);text-decoration:none}
  .top__call::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--phone) center/contain no-repeat;mask:var(--phone) center/contain no-repeat}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:#fff;border-bottom:1px solid var(--rule);padding:8px var(--gut) 22px;max-height:calc(100vh - 84px);overflow:auto}
  .menu.open{display:flex}
  .menu a{padding:14px 6px;font-size:1.1rem;border-bottom:1px solid var(--rule);border-radius:0;white-space:normal}
  .menu .sub{display:block;position:static;border:0;box-shadow:none;padding:0 0 0 18px;min-width:0}
  .menu .menu__est,.menu .menu__cta{margin:12px 0 0}
  .menu .menu__est a,.menu .menu__cta a{justify-content:center;display:flex;border-radius:6px}
}
@media (max-width:480px){.brand img{height:44px;max-width:170px}}

/* sections */
.band{padding:clamp(64px,8vw,104px) 0}
.band--sand,.band--mist{background:var(--sand)}
.band h2{max-width:22ch}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.split--top{align-items:start}
@media (max-width:880px){.split{grid-template-columns:1fr;gap:24px}}

/* postcard photos */
.postcard{margin:0;background:#fff;padding:12px 12px 12px;border-radius:4px;box-shadow:0 22px 44px -24px rgba(13,59,79,.45),0 2px 6px rgba(13,59,79,.08)}
.postcard img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:2px}
.postcard figcaption{font:700 .95rem/1.3 var(--head);color:var(--ink-soft);padding:12px 4px 2px;letter-spacing:.01em}

/* hero */
.hero{background:linear-gradient(180deg,#FFFFFF 0%,var(--sand) 100%);overflow:hidden}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(48px,6vw,88px)}
.hero h1{max-width:12ch}
.hero .lede{max-width:40ch}
.hero__photo{transform:rotate(1.6deg)}
.hero__photo figcaption::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--sun);margin-right:8px;vertical-align:1px}
@media (max-width:880px){.hero__grid{grid-template-columns:1fr}.hero__photo{transform:rotate(1deg);max-width:620px}}

/* reasons */
.reasons{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:32px}
.reasons>div{background:#fff;border-radius:10px;padding:24px;border-bottom:5px solid var(--sun)}
.reasons h3{font-size:1.15rem}
.reasons p{margin:0;color:var(--ink-soft);font-size:1.05rem}
@media (max-width:980px){.reasons{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.reasons{grid-template-columns:1fr}}

/* page head */
.page-head{background:linear-gradient(180deg,#FFFFFF 0%,var(--sand) 100%);border-bottom:1px solid var(--rule)}
.page-head__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,64px);align-items:center;padding-block:clamp(44px,6vw,76px)}
.page-head h1{max-width:16ch}
.page-head__photo{transform:rotate(-1.2deg)}
.page-head--plain .page-head__grid{grid-template-columns:1fr}
@media (max-width:880px){.page-head__grid{grid-template-columns:1fr}.page-head__photo{order:-1;max-width:520px;transform:none}}

/* services: icon cards 3 + 2 */
.svc{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin-top:36px}
.svc__card{grid-column:span 2;display:flex;flex-direction:column;background:#fff;border:1px solid var(--rule);border-radius:10px;padding:28px;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s,box-shadow .2s}
.svc__card:nth-child(4),.svc__card:nth-child(5){grid-column:span 3}
.band--sand .svc__card{border-color:#fff}
.svc__card:hover{border-color:var(--sea);transform:translateY(-2px);box-shadow:0 18px 36px -24px rgba(13,59,79,.5);color:var(--ink)}
.ico{width:44px;height:44px;padding:9px;border-radius:50%;background:var(--sun);fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:18px}
.svc__card h3{margin-bottom:.3em}
.svc__card p{margin:0 0 16px;color:var(--ink-soft)}
.svc__more{margin-top:auto;font:700 1rem var(--head);color:var(--sea)}
@media (max-width:900px){.svc{grid-template-columns:1fr 1fr}.svc__card,.svc__card:nth-child(4){grid-column:span 1}.svc__card:nth-child(5){grid-column:span 2}}
@media (max-width:560px){.svc{grid-template-columns:1fr}.svc__card:nth-child(5){grid-column:span 1}}

.pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.pair .postcard:first-child{transform:rotate(-1.8deg)}
.pair .postcard:last-child{transform:rotate(1.5deg);margin-top:40px}
@media (max-width:560px){.pair{grid-template-columns:1fr}.pair .postcard:last-child{margin-top:0}}

/* steps: horizontal route with dots */
.steps{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;top:21px;left:22px;right:22px;border-top:3px dotted var(--sea)}
.steps li{counter-increment:s;position:relative;padding-top:66px}
.steps li::before{content:counter(s);position:absolute;top:0;left:0;width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;font:800 1.15rem/44px var(--head);text-align:center;box-shadow:0 0 0 6px #fff}
.band--sand .steps li::before{box-shadow:0 0 0 6px var(--sand)}
.steps h3{font-size:1.2rem;margin-bottom:.3em}
.steps p{margin:0;color:var(--ink-soft);font-size:1.05rem}
@media (max-width:880px){.steps{grid-template-columns:1fr 1fr;row-gap:36px}.steps::before{display:none}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* cards */
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:32px}
.cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:26px 28px;border-left:6px solid var(--sun)}
.band--sand .card{border-color:#fff;border-left-color:var(--sun)}
.card h3{margin-bottom:.35em}
.card p{margin:0;color:var(--ink-soft)}
.card p+p{margin-top:.6em}
@media (max-width:900px){.cards--3{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.cards,.cards--3{grid-template-columns:1fr}}

.note{margin:28px 0 0;max-width:760px;font-size:1.05rem;color:var(--ink-soft);padding-left:16px;border-left:4px solid var(--sea)}
.note strong{color:var(--ink)}
.photo{border-radius:8px;overflow:hidden}

/* chips */
.chips{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.chips a{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:999px;background:#fff;border:2px solid var(--ink);color:var(--ink);text-decoration:none;font:700 1rem var(--head)}
.chips a:hover{background:var(--ink);color:#fff}
.links-inline{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.links-inline a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:6px;background:#fff;border:1px solid var(--rule);color:var(--ink);text-decoration:none;font:600 1rem var(--head)}
.links-inline a:hover{border-color:var(--sea);color:var(--sea)}

/* FAQ */
.faq{margin-top:28px;max-width:880px;display:grid;gap:10px}
.faq details{background:var(--sand);border-radius:10px}
.band--sand .faq details{background:#fff}
.faq summary{list-style:none;cursor:pointer;padding:20px 60px 20px 24px;position:relative;font:700 1.15rem/1.35 var(--head)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:22px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--sun) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230D3B4F' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/14px no-repeat;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 24px;margin:0 0 20px;color:var(--ink-soft);max-width:68ch}

/* CTA with a single wave */
.cta{position:relative;background:var(--ink);color:#fff;padding:clamp(96px,10vw,130px) 0 clamp(72px,9vw,108px)}
.cta .wave{position:absolute;top:-1px;left:0;width:100%;height:60px;fill:var(--white);transform:scaleY(-1)}
.band--sand + .cta .wave{fill:var(--sand)}
.cta__in{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.cta h2{color:#fff;margin:0;max-width:16ch}
.cta p{color:#CFE0E8;font-size:1.15rem;max-width:48ch}
.cta .btn--line{color:#fff;border-color:rgba(255,255,255,.65)}
.cta .btn--line:hover{background:#fff;color:var(--ink);border-color:#fff}
.cta .muted{color:#A9C4D1;margin:14px 0 0;font-size:1rem}
@media (max-width:880px){.cta__in{grid-template-columns:1fr;gap:12px}}

/* prose */
.prose{max-width:760px}
.prose h1{font-size:clamp(2.3rem,4.4vw,3.2rem)}
.prose h2{font-size:1.85rem;margin-top:1.5em;max-width:none}
.prose h3{margin-top:1.3em}
.prose li{margin-bottom:.4em}
.prose .date{font-size:1rem;color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:12px;margin-bottom:2em}

.table-wrap{overflow-x:auto;margin-top:28px;background:#fff;border:1px solid var(--rule);border-radius:10px}
table{width:100%;border-collapse:collapse;min-width:520px}
th,td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--rule);vertical-align:top}
tr:last-child td{border-bottom:0}
th{font:700 1.05rem var(--head);background:var(--sand)}

/* forms */
.form{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:clamp(24px,3vw,38px);box-shadow:0 22px 44px -28px rgba(13,59,79,.4)}
.form h2{font-size:1.6rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:520px){.form-row{grid-template-columns:1fr}}
.field{margin-bottom:18px}
.field label{display:block;font:700 1rem var(--head);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1.08rem;color:var(--ink);background:#fff;border:2px solid #C9BFAC;border-radius:6px;padding:12px 14px;min-height:54px}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--sun);outline-offset:1px;border-color:var(--ink)}
.form .btn{width:100%}

/* footer */
.foot{background:#082A38;color:#BDD0DA;padding:64px 0 30px;font-size:1.05rem}
.foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px}
.foot h4{color:#fff;margin-bottom:14px}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin-bottom:9px}
.foot a{color:#fff}
.foot a:hover{color:var(--sun)}
.foot p{color:#BDD0DA}
.foot__brand{font:800 1.5rem/1.1 var(--head);color:#fff;margin-bottom:12px;letter-spacing:-.02em}
.foot__brand em{font-style:normal;color:var(--sun)}
.foot__bottom{margin-top:48px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);font-size:.95rem}
@media (max-width:880px){.foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.foot__grid{grid-template-columns:1fr}}

.callbar{display:none}
@media (max-width:760px){
  body{padding-bottom:84px}
  .callbar{display:grid;grid-template-columns:1fr auto;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--rule);padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 24px -12px rgba(13,59,79,.3)}
  .callbar .btn{min-height:52px;padding:.55em .9em;font-size:1rem;white-space:nowrap}
  .actions .btn{width:100%}
}

/* form spam trap: hidden from people, visible to bots */
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
